diff -r --unified boost_1_49_0/libs/filesystem/v3/src/operations.cpp boost_1_49_0/libs/filesystem/v3/src/operations.cpp --- boost_1_49_0/libs/filesystem/v3/src/operations.cpp 2012-03-12 11:14:41.000000000 -0400 +++ boost_1_49_0/libs/filesystem/v3/src/operations.cpp 2012-03-12 11:16:26.000000000 -0400 @@ -1385,14 +1385,8 @@ else if (prms & remove_perms) prms = current_status.permissions() & ~prms; - // Mac OS X Lion and some other platforms don't support fchmodat() -# if defined(AT_FDCWD) && defined(AT_SYMLINK_NOFOLLOW) \ - && (!defined(__SUNPRO_CC) || __SUNPRO_CC > 0x5100) - if (::fchmodat(AT_FDCWD, p.c_str(), mode_cast(prms), - !(prms & symlink_perms) ? 0 : AT_SYMLINK_NOFOLLOW)) -# else // fallback if fchmodat() not supported - if (::chmod(p.c_str(), mode_cast(prms))) -# endif + // Don't use fchmodat() since AT_SYMLINK_NOFOLLOW is not implemented on Linux + if (::chmod(p.c_str(), mode_cast(prms))) { if (ec == 0) BOOST_FILESYSTEM_THROW(filesystem_error(