https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120147
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- I don't see how that commit can cause this. The native_handle_type is determined by: #ifdef _GLIBCXX_USE_STDIO_PURE using native_handle_type = __c_file*; // FILE* #elif _GLIBCXX_USE__GET_OSFHANDLE using native_handle_type = void*; // HANDLE #else using native_handle_type = int; // POSIX file descriptor #endif And the _GLIBCXX_USE__GET_OSFHANDLE macro should be defined on Windows, as decided by this autoconf test: AC_TRY_COMPILE([ #if defined(_WIN32) && !defined(__CYGWIN__) # include <stdint.h> # include <stdio.h> # include <io.h> #endif ],[ FILE* file = 0; int fd = fileno(file); intptr_t crt_handle = _get_osfhandle(fd); void* win32_handle = reinterpret_cast<void*>(crt_handle); ], [ac_get_osfhandle=yes], [ac_get_osfhandle=no]) if test "$ac_get_osfhandle" = yes; then AC_DEFINE_UNQUOTED(_GLIBCXX_USE__GET_OSFHANDLE, 1, [Define if _get_osfhandle should be used for filebuf::native_handle().]) fi This has nothing to do with atomic builtins.