diff mbox

Implement ISO/IEC TS 18822 C++ File system TS

Message ID 20150501151117.GC3618@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely May 1, 2015, 3:11 p.m. UTC
On 01/05/15 14:45 +0200, Rainer Orth wrote:
>Jonathan Wakely <jwakely@redhat.com> writes:
>
>> I've tested this on GNU/Linux and DragonFly BSD, but as it's probably
>> not going to build everywhere I've added the configure option
>> --enable-libstdcxx-filesystem-ts which defaults to enabled on GNU, BSD
>> and Solaris targets, and disabled elsewhere for now. If it fails to
>> build on any of those targets we can change the default while we fix
>> the problem.
>
>Unfortunately, the patch breaks Solaris 10 bootstrap, which lacks
>fchmodat:
>
>/vol/gcc/src/hg/trunk/local/libstdc++-v3/src/filesystem/ops.cc: In function 'void std::experimental::filesystem::v1::permissions(const std::experimental::filesystem::v1::__cxx11::path&, std::experimental::filesystem::v1::perms, std::error_code&)':
>/vol/gcc/src/hg/trunk/local/libstdc++-v3/src/filesystem/ops.cc:890:17: error: '::fchmodat' has not been declared
>   if (int err = ::fchmodat(AT_FDCWD, p.c_str(), static_cast<mode_t>(prms), 0))
>                 ^
>make[6]: *** [ops.lo] Error 1

Sorry about that, I'll add a check for fchmodat, in the meantime this
will fix bootstrap. Committed as obvious.

Comments

Rainer Orth May 1, 2015, 3:14 p.m. UTC | #1
Jonathan Wakely <jwakely@redhat.com> writes:

> Sorry about that, I'll add a check for fchmodat, in the meantime this
> will fix bootstrap. Committed as obvious.
>
>
> commit f4768ebcfd68e2fa6e4763d0b681e8fe710c64c4
> Author: Jonathan Wakely <jwakely@redhat.com>
> Date:   Fri May 1 16:09:28 2015 +0100
>
>     	* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
>     	* configure: Regenerate.

Which is overkill given that Solaris > 10 does support fchmodat, but it's
just a workaround anyway.

Thanks.
        Rainer
diff mbox

Patch

commit f4768ebcfd68e2fa6e4763d0b681e8fe710c64c4
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri May 1 16:09:28 2015 +0100

    	* acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris.
    	* configure: Regenerate.

diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 537ca6f..9d8d96d 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -3923,7 +3923,7 @@  AC_DEFUN([GLIBCXX_ENABLE_FILESYSTEM_TS], [
         enable_libstdcxx_filesystem_ts=yes
         ;;
       solaris*)
-        enable_libstdcxx_filesystem_ts=yes
+        enable_libstdcxx_filesystem_ts=no
         ;;
       *)
         enable_libstdcxx_filesystem_ts=no
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 0a059c6..5ecfdeb 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -79163,7 +79163,7 @@  $as_echo_n "checking whether to build Filesystem TS support... " >&6; }
         enable_libstdcxx_filesystem_ts=yes
         ;;
       solaris*)
-        enable_libstdcxx_filesystem_ts=yes
+        enable_libstdcxx_filesystem_ts=no
         ;;
       *)
         enable_libstdcxx_filesystem_ts=no