libstdc++: Use ENOSYS for unsupported filesystem ops on AVR
Because avr-libc <errno.h> defines most error numbers with duplicate values it's not sufficient to check #ifdef ENOTSUP when deciding which std::errc constant to use for the filesystem library's __unsupported() helper. Add a special case for AVR to always use the ENOSYS value. libstdc++-v3/ChangeLog: * src/filesystem/ops-common.h [AVR] (__unsupported): Always use errc::function_not_supported instead of errc::not_supported.
This commit is contained in:
parent
331b4f168a
commit
5c43f06c22
1 changed files with 6 additions and 1 deletions
|
@ -84,7 +84,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
inline error_code
|
||||
__unsupported() noexcept
|
||||
{
|
||||
#if defined ENOTSUP
|
||||
#if defined __AVR__
|
||||
// avr-libc defines ENOTSUP and EOPNOTSUPP but with nonsense values.
|
||||
// ENOSYS is defined though, so use an error_code corresponding to that.
|
||||
// This contradicts the comment above, but we don't have much choice.
|
||||
return std::make_error_code(std::errc::function_not_supported);
|
||||
#elif defined ENOTSUP
|
||||
return std::make_error_code(std::errc::not_supported);
|
||||
#elif defined EOPNOTSUPP
|
||||
// This is supposed to be for socket operations
|
||||
|
|
Loading…
Add table
Reference in a new issue