errno.h: ESTRPIPE
Ralf Corsepius
ralf.corsepius@rtems.org
Mon Mar 16 19:27:00 GMT 2009
Corinna Vinschen wrote:
> On Mar 16 16:35, Ralf Corsepius wrote:
>> Corinna Vinschen wrote:
>>> The error code is used at least in Linux and Solaris.
>> It's not part of any POSIX or other standard I am aware about.
>>
>> If there should be one, please point me to it.
>>
>>> If we generate
>>> our own Cygwin-specific error codes we will at one point have a errno
>>> list where the same error code is used for different purposes on
>>> different systems. I don't see that this gains anybody anything.
>> I don't have much of a problem with Cygwin wanting to adopt other OS's
>> proprietary extensions. But this is not what your patch is doing.
>>
>> Your patch is infecting newlib with Cygwin's wish to generalize ESTRIPE.
>> This is wrong. ESTRIPE is a non-standardized and OS-specific extension,
>> and therefore should be treated as such (i.e. #ifdef'ed).
>
> It's not ESTRIPE but ESTRPIPE.
Pardon, typo on my part. I am talking about ESTRPIPE
>> C.f. the patch below.
>
> Newlib already defines the following errors not present in the POSIX standard:
Well, latent bugs, subject to fixing, I'd say.
> EADV /* Advertise error */
> EBADE /* Invalid exchange */
> EBADFD /* f.d. invalid for this operation */
> EBADR /* Invalid request descriptor */
> EBADRQC /* Invalid request code */
> EBADSLT /* Invalid slot */
> EBFONT /* Bad font file fmt */
> ECHRNG /* Channel number out of range */
> ECOMM /* Communication error on send */
> EDEADLOCK /* File locking deadlock error */
> EDOTDOT /* Cross mount point (not really error) */
> EFTYPE /* Inappropriate file type or format */
> EHOSTDOWN /* Host is down */
> EL2HLT /* Level 2 halted */
> EL2NSYNC /* Level 2 not synchronized */
> EL3HLT /* Level 3 halted */
> EL3RST /* Level 3 reset */
> ELBIN /* Inode is remote (not really error) */
> ELIBACC /* Can't access a needed shared lib */
> ELIBBAD /* Accessing a corrupted shared lib */
> ELIBEXEC /* Attempting to exec a shared library */
> ELIBMAX /* Attempting to link in too many libs */
> ELIBSCN /* .lib section in a.out corrupted */
> ELNRNG /* Link number out of range */
> ENMFILE /* No more files */
> ENOANO /* No anode */
> ENOCSI /* No CSI structure available */
> ENONET /* Machine is not on the network */
> ENOPKG /* Package not installed */
> ENOTBLK /* Block device required */
> ENOTUNIQ /* Given log. name not unique */
> EPFNOSUPPORT /* Protocol family not supported */
> EPROCLIM
> EREMCHG /* Remote address changed */
> EREMOTE /* The object is remote */
> ESHUTDOWN /* Can't send after socket shutdown */
> ESOCKTNOSUPPORT /* Socket type not supported */
> ESRMNT /* Srmount error */
> ETOOMANYREFS
> EUNATCH /* Protocol driver not attached */
> EUSERS
> EXFULL /* Exchange full */
>
> And I even didn't mention the Cygwin-specific
>
> ECASECLASH /* Filename exists with different case */
> ENOMEDIUM /* No medium (in tape drive) */
> ENOSHARE /* No such host or network path */
>
> What's different with ESTRPIPE now?
The ones you mention above are in the same bug-lane as ESTRPIPE is.
The only difference: ESTRPIPE is a new bug.
Ralf
More information about the Newlib
mailing list