mkdir, chdir and chmod functions are defined in librtemscpu, that doesn't get linked in during libstdc++-v3 configure, but applications use -qrtems for linking, which brings those symbols in, so it makes sense to mark them as available so that the C++ filesystem APIs are enabled.
Regstrapped on x86_64-linux-gnu, also tested on aarch64-rtems6 with gcc-13. Ok to install? for libstdc++-v3/ChangeLog * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as available. * configure: Rebuilt. --- libstdc++-v3/configure | 7 +++++++ libstdc++-v3/configure.ac | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 5179cc507f129..a7d1c015906c2 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -28610,6 +28610,13 @@ _ACEOF $as_echo "#define HAVE_USLEEP 1" >>confdefs.h + + # These functions are defined in librtempscpu. We don't use + # -qrtems during configure, so we don't link that in, and fail + # to find them. + glibcxx_cv_chdir=yes + glibcxx_cv_chmod=yes + glibcxx_cv_mkdir=yes ;; esac elif test "x$with_headers" != "xno"; then diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 37396bd6ebbe6..0725c81bc9fa4 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -400,6 +400,13 @@ dnl # rather than hardcoding that information. AC_DEFINE(HAVE_SYMLINK) AC_DEFINE(HAVE_TRUNCATE) AC_DEFINE(HAVE_USLEEP) + + # These functions are defined in librtempscpu. We don't use + # -qrtems during configure, so we don't link that in, and fail + # to find them. + glibcxx_cv_chdir=yes + glibcxx_cv_chmod=yes + glibcxx_cv_mkdir=yes ;; esac elif test "x$with_headers" != "xno"; then -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity Excluding neuro-others for not behaving ""normal"" is *not* inclusive