View Issue Details

IDProjectCategoryView StatusLast Update
00004961003.1(2008)/Issue 7System Interfacespublic2019-06-10 08:55
Reportergeoffclare Assigned Toajosey  
PrioritynormalSeverityObjectionTypeClarification Requested
Status ClosedResolutionAccepted As Marked 
NameGeoff Clare
OrganizationThe Open Group
User Reference
Section2.3 Error Numbers
Page Number482
Line Number16415
Interp StatusApproved
Final Accepted Textsee 0000496:0000982
Summary0000496: 2.3 ENOSYS description inconsistent with encrypt()
DescriptionThe description of ENOSYS in section 2.3 Error Numbers is:

    Function not implemented. An attempt was made to use a function
    that is not available in this implementation.

This implies that when a function returns an ENOSYS error, the whole
function is not implemented.

The description of ENOSYS on the encrypt() page is:

    The functionality is not supported on this implementation.

and the DESCRIPTION section makes it clear that encrypt() can support
encoding and not support decoding, setting errno to ENOSYS if decoding
is not supported.

(The description of ENOSYS on the crypt() and setkey() pages also
matches the one on the encrypt() page, even though for them it is the
whole function that is supported or not.)
Desired ActionChange:

    Function not implemented. An attempt was made to use a function
    that is not available in this implementation.

to:

    Functionality not supported. An attempt was made to use a function
    in a way that is not supported in this implementation.
Tagstc2-2008

Activities

geoffclare

2011-09-30 15:45

manager   bugnote:0000976

As well as the desired action, a change to the <errno.h> page is
needed to match.

XBD page 236 line 7737 change:

    [ENOSYS] Function not supported.

to:

    [ENOSYS] Functionality not supported.

jilles

2011-09-30 20:08

reporter   bugnote:0000978

With this change, what is the difference between [ENOSYS] and [ENOTSUP]? The rationale page (XRAT B.2.3 Error Numbers, page 3505 lines 117932-117936) says that the difference between [ENOSYS] and [ENOTSUP] is that [ENOSYS] means the entire function is not supported and [ENOTSUP] means a part is not supported.

Since various implementations have been similarly sloppy (e.g. glibc 2.12 may return [ENOSYS] for specific parameters only such as mq_notify() with SIGEV_THREAD), giving up the illusion of a clear difference may be the right option.

The [EOPNOTSUPP] error for object-dependent "not supported" is clearly different and cannot be substituted by [ENOSYS], even though it may have the same number as [ENOTSUP].

geoffclare

2011-10-01 08:16

manager   bugnote:0000979

Revised proposal that takes into account 0000496:0000978 and also has
slightly different wording for ENOSYS that I think is better than
my original proposal:

Change:

    Function not implemented. An attempt was made to use a function
    that is not available in this implementation.

to:

    Functionality not supported. An attempt was made to use optional
    functionality that is not supported in this implementation.

At XBD page 236 line 7737 change:

    [ENOSYS] Function not supported.

to:

    [ENOSYS] Functionality not supported.

At XRAT page 3504 line 117934 change:

    The return of [ENOSYS] is to be taken to indicate that the
    function of the interface is not supported at all; the function
    will always fail with this error code.

to:

    In some earlier versions of this standard, the difference
    between [ENOTSUP] and [ENOSYS] was that [ENOSYS] indicated that
    the function was not supported at all. This is no longer the
    case as [ENOSYS] can also be used to indicate non-support of
    optional functionality for a function that has some
    required functionality. (See XSH encrypt().)

eblake

2011-10-06 15:58

manager   bugnote:0000982


Interpretation response
------------------------
The standard is unclear on this issue, and no conformance distinction can be made between alternative implementations based on this. This is being referred to the sponsor.

Rationale:
----------
None.

Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
Make changes in 0000496:0000979

ajosey

2012-06-29 16:18

manager   bugnote:0001298

Interpretation proposed 29 June 2012 for final 45 day review

ajosey

2012-08-30 09:10

manager   bugnote:0001339

Interpretation approved 30 Aug 2012

Issue History

Date Modified Username Field Change
2011-09-29 16:17 geoffclare New Issue
2011-09-29 16:17 geoffclare Status New => Under Review
2011-09-29 16:17 geoffclare Assigned To => ajosey
2011-09-29 16:17 geoffclare Name => Geoff Clare
2011-09-29 16:17 geoffclare Organization => The Open Group
2011-09-29 16:17 geoffclare Section => 2.3 Error Numbers
2011-09-29 16:17 geoffclare Page Number => 482
2011-09-29 16:17 geoffclare Line Number => 16415
2011-09-29 16:17 geoffclare Interp Status => ---
2011-09-30 15:45 geoffclare Note Added: 0000976
2011-09-30 20:08 jilles Note Added: 0000978
2011-10-01 08:16 geoffclare Note Added: 0000979
2011-10-06 15:58 eblake Interp Status --- => Pending
2011-10-06 15:58 eblake Note Added: 0000982
2011-10-06 15:58 eblake Status Under Review => Interpretation Required
2011-10-06 15:58 eblake Resolution Open => Accepted As Marked
2011-10-06 16:02 eblake Final Accepted Text => see 0000496:0000982
2011-10-06 16:04 eblake Tag Attached: tc2-2008
2012-06-29 16:18 ajosey Interp Status Pending => Proposed
2012-06-29 16:18 ajosey Note Added: 0001298
2012-08-30 09:10 ajosey Interp Status Proposed => Approved
2012-08-30 09:10 ajosey Note Added: 0001339
2019-06-10 08:55 agadmin Status Interpretation Required => Closed