Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0000496 [1003.1(2008)/Issue 7] System Interfaces Objection Clarification Requested 2011-09-29 16:17 2019-06-10 08:55
Reporter geoffclare View Status public  
Assigned To ajosey
Priority normal Resolution Accepted As Marked  
Status Closed  
Name Geoff Clare
Organization The Open Group
User Reference
Section 2.3 Error Numbers
Page Number 482
Line Number 16415
Interp Status Approved
Final Accepted Text see Note: 0000982
Summary 0000496: 2.3 ENOSYS description inconsistent with encrypt()
Description The 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 Action 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 a function
    in a way that is not supported in this implementation.
Tags tc2-2008
Attached Files

- Relationships

-  Notes
(0000976)
geoffclare (manager)
2011-09-30 15:45

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.
(0000978)
jilles (reporter)
2011-09-30 20:08

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].
(0000979)
geoffclare (manager)
2011-10-01 08:16

Revised proposal that takes into account Note: 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().)
(0000982)
eblake (manager)
2011-10-06 15:58


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 Note: 0000979
(0001298)
ajosey (manager)
2012-06-29 16:18

Interpretation proposed 29 June 2012 for final 45 day review
(0001339)
ajosey (manager)
2012-08-30 09:10

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 Note: 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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker