https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104167
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- My best guess is that including <chrono> in those files causes a dependency on std::chrono::tzdb::current_zone() which depends on std::filesystem::read_symlink, which will pull in the symbols in src/c++17/fs_ops.cc Does arm-eabi build libstdc++.a with -ffunction-sections? The tests should be built with -Wl,--gc-sections which combined with -ffunction-sections should mean that the tests do not pull in symbols they don't need. I would *really* prefer not to have to split src/c++20/tzdb.cc and src/c++17/fs_*.cc into dozens of separate files. Please file a separate bug for these failures.