X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Date: Fri, 05 Jun 2015 11:56:57 +0300 From: "Eli Zaretskii (eliz AT gnu DOT org)" Subject: Re: DJGPP v2.05: some thoughts In-reply-to: <83k2vipr7n.fsf@gnu.org> X-012-Sender: halo1 AT inter DOT net DOT il To: djgpp AT delorie DOT com Message-id: <83iob2pm7a.fsf@gnu.org> References: <55673F0B DOT 1090103 AT iki DOT fi> <83twuwwshg DOT fsf AT gnu DOT org> <55675040 DOT 9030008 AT iki DOT fi> <556F6E49 DOT 8010006 AT gmx DOT de> <556FCCDF DOT 7080005 AT iki DOT fi> <83bngvr0ef DOT fsf AT gnu DOT org> <557078B1 DOT 9040004 AT iki DOT fi> <201506041613 DOT t54GDT8m014488 AT envy DOT delorie DOT com> <5570B1F7 DOT 1070509 AT iki DOT fi> <201506042022 DOT t54KMxkJ024069 AT envy DOT delorie DOT com> <55712D17 DOT 2040205 AT iki DOT fi> <83k2vipr7n DOT fsf AT gnu DOT org> Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk FWIW, as far as I could glean from drafts of C++ standards available on the net, the C++ standards define the following errno values: C++98 and C++03 still required only EDOM and ERANGE, perhaps with EILSEQ (I cannot say, some drafts have EILSEQ, some don't). C++11 stated Posix compliance, and therefore added all of the values defined by Posix: ECONNREFUSED EIO ENODEV ENOTEMPTY ERANGE E2BIG ECONNRESET EISCONN ENOENT ENOTRECOVERABLE EROFS EACCES EDEADLK EISDIR ENOEXEC ENOTSOCK ESPIPE EADDRINUSE EDESTADDRREQ ELOOP ENOLCK ENOTSUP ESRCH EADDRNOTAVAIL EDOM EMFILE ENOLINK ENOTTY ETIME EAFNOSUPPORT EEXIST EMLINK ENOMEM ENXIO ETIMEDOUT EAGAIN EFAULT EMSGSIZE ENOMSG EOPNOTSUPP ETXTBSY EALREADY EFBIG ENAMETOOLONG ENOPROTOOPT EOVERFLOW EWOULDBLOCK EBADF EHOSTUNREACH ENETDOWN ENOSPC EOWNERDEAD EXDEV EBADMSG EIDRM ENETRESET ENOSR EPERM EBUSY EILSEQ ENETUNREACH ENOSTR EPIPE ECANCELED EINPROGRESS ENFILE ENOSYS EPROTO ECHILD EINTR ENOBUFS ENOTCONN EPROTONOSUPPORT ECONNABORTED EINVAL ENODATA ENOTDIR EPROTOTYPE This list stays unchanged through all the following C++ standards, including C++14. The latest C standard, C11, still defines only 3 errno values: EDOM, EILSEQ, and ERANGE. So therefore I think we should have only those 3 values in the __STRICT_ANSI__ portion, unless __cplusplus is defined and its value is greater or equal to 201103L (which is what AFAICS GCC defines when invoked as "g++ -std=c++11"), in which case we should have all of the above Posix values available.