diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -53,10 +53,10 @@ ```` header. The associated macro ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has also been removed. -- Transitive includes of ```` have been removed. If you see compiler errors - related to missing declarations inside namespace ``std`` when updating libc++, - you are probably missing ``#include `` in a file where you use algorithms. - +- Some libc++ headers no longer transitively include all of ````and ````. + If, after updating libc++, you see compiler errors related to missing declarations in + namespace ``std``, it might be because one of your source files now needs to + ``#include `` and/or ``#include ``. ABI Changes ----------- diff --git a/libcxx/include/__filesystem/directory_entry.h b/libcxx/include/__filesystem/directory_entry.h --- a/libcxx/include/__filesystem/directory_entry.h +++ b/libcxx/include/__filesystem/directory_entry.h @@ -11,6 +11,7 @@ #define _LIBCPP___FILESYSTEM_DIRECTORY_ENTRY_H #include <__availability> +#include <__chrono/time_point.h> #include <__config> #include <__errc> #include <__filesystem/file_status.h> @@ -21,7 +22,6 @@ #include <__filesystem/path.h> #include <__filesystem/perms.h> #include <__utility/unreachable.h> -#include #include #include #include diff --git a/libcxx/include/__filesystem/file_time_type.h b/libcxx/include/__filesystem/file_time_type.h --- a/libcxx/include/__filesystem/file_time_type.h +++ b/libcxx/include/__filesystem/file_time_type.h @@ -11,8 +11,9 @@ #define _LIBCPP___FILESYSTEM_FILE_TIME_TYPE_H #include <__availability> +#include <__chrono/file_clock.h> +#include <__chrono/time_point.h> #include <__config> -#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__filesystem/operations.h b/libcxx/include/__filesystem/operations.h --- a/libcxx/include/__filesystem/operations.h +++ b/libcxx/include/__filesystem/operations.h @@ -11,6 +11,7 @@ #define _LIBCPP___FILESYSTEM_OPERATIONS_H #include <__availability> +#include <__chrono/time_point.h> #include <__config> #include <__filesystem/copy_options.h> #include <__filesystem/file_status.h> @@ -20,7 +21,6 @@ #include <__filesystem/perm_options.h> #include <__filesystem/perms.h> #include <__filesystem/space_info.h> -#include #include #include diff --git a/libcxx/include/__mutex_base b/libcxx/include/__mutex_base --- a/libcxx/include/__mutex_base +++ b/libcxx/include/__mutex_base @@ -10,9 +10,12 @@ #ifndef _LIBCPP___MUTEX_BASE #define _LIBCPP___MUTEX_BASE +#include <__chrono/duration.h> +#include <__chrono/steady_clock.h> +#include <__chrono/system_clock.h> +#include <__chrono/time_point.h> #include <__config> #include <__threading_support> -#include #include #include #include diff --git a/libcxx/include/__thread/poll_with_backoff.h b/libcxx/include/__thread/poll_with_backoff.h --- a/libcxx/include/__thread/poll_with_backoff.h +++ b/libcxx/include/__thread/poll_with_backoff.h @@ -10,8 +10,12 @@ #define _LIBCPP___THREAD_POLL_WITH_BACKOFF_H #include <__availability> +#include <__chrono/duration.h> +#include <__chrono/high_resolution_clock.h> +#include <__chrono/steady_clock.h> +#include <__chrono/time_point.h> #include <__config> -#include +#include <__filesystem/file_time_type.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__thread/timed_backoff_policy.h b/libcxx/include/__thread/timed_backoff_policy.h --- a/libcxx/include/__thread/timed_backoff_policy.h +++ b/libcxx/include/__thread/timed_backoff_policy.h @@ -13,8 +13,8 @@ #ifndef _LIBCPP_HAS_NO_THREADS -#include <__threading_support> -#include +# include <__chrono/duration.h> +# include <__threading_support> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__threading_support b/libcxx/include/__threading_support --- a/libcxx/include/__threading_support +++ b/libcxx/include/__threading_support @@ -11,9 +11,10 @@ #define _LIBCPP_THREADING_SUPPORT #include <__availability> +#include <__chrono/convert_to_timespec.h> +#include <__chrono/duration.h> #include <__config> #include <__thread/poll_with_backoff.h> -#include #include #include #include diff --git a/libcxx/include/atomic b/libcxx/include/atomic --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -519,6 +519,7 @@ */ #include <__availability> +#include <__chrono/duration.h> #include <__config> #include <__thread/poll_with_backoff.h> #include <__thread/timed_backoff_policy.h> diff --git a/libcxx/include/future b/libcxx/include/future --- a/libcxx/include/future +++ b/libcxx/include/future @@ -363,12 +363,13 @@ #include <__assert> #include <__availability> +#include <__chrono/duration.h> +#include <__chrono/time_point.h> #include <__config> #include <__memory/allocator_arg_t.h> #include <__memory/uses_allocator.h> #include <__utility/auto_cast.h> #include <__utility/forward.h> -#include #include #include #include @@ -376,6 +377,8 @@ #include #include +#include // TODO: Remove unused header + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header #endif diff --git a/libcxx/include/semaphore b/libcxx/include/semaphore --- a/libcxx/include/semaphore +++ b/libcxx/include/semaphore @@ -46,6 +46,7 @@ */ #include <__availability> +#include <__chrono/time_point.h> #include <__config> #include <__thread/timed_backoff_policy.h> #include <__threading_support> diff --git a/libcxx/include/thread b/libcxx/include/thread --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -89,7 +89,6 @@ #include <__thread/timed_backoff_policy.h> #include <__threading_support> #include <__utility/forward.h> -#include #include #include #include diff --git a/libcxx/test/std/thread/futures/futures.async/async.pass.cpp b/libcxx/test/std/thread/futures/futures.async/async.pass.cpp --- a/libcxx/test/std/thread/futures/futures.async/async.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.async/async.pass.cpp @@ -20,10 +20,11 @@ // async(launch policy, F&& f, Args&&... args); -#include #include -#include #include +#include +#include +#include #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.shared_future/wait.pass.cpp b/libcxx/test/std/thread/futures/futures.shared_future/wait.pass.cpp --- a/libcxx/test/std/thread/futures/futures.shared_future/wait.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.shared_future/wait.pass.cpp @@ -15,8 +15,9 @@ // void wait() const; -#include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp b/libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp --- a/libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp @@ -17,8 +17,9 @@ // future_status // wait_for(const chrono::duration& rel_time) const; -#include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp b/libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp --- a/libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp @@ -17,9 +17,10 @@ // future_status // wait_until(const chrono::time_point& abs_time) const; -#include #include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.unique_future/wait.pass.cpp b/libcxx/test/std/thread/futures/futures.unique_future/wait.pass.cpp --- a/libcxx/test/std/thread/futures/futures.unique_future/wait.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.unique_future/wait.pass.cpp @@ -15,8 +15,9 @@ // void wait() const; -#include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp b/libcxx/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp --- a/libcxx/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp @@ -19,8 +19,9 @@ // future_status // wait_for(const chrono::duration& rel_time) const; -#include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h" diff --git a/libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp b/libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp --- a/libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp +++ b/libcxx/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp @@ -17,9 +17,10 @@ // future_status // wait_until(const chrono::time_point& abs_time) const; -#include #include #include +#include +#include #include "make_test_thread.h" #include "test_macros.h"