errno groveler in C
Lassi Kortela
(27 Jun 2020 12:03 UTC)
|
Re: errno groveler in C
John Cowan
(27 Jun 2020 12:10 UTC)
|
Re: errno groveler in C
Lassi Kortela
(27 Jun 2020 12:16 UTC)
|
Re: errno groveler in C
hga@xxxxxx
(27 Jun 2020 12:26 UTC)
|
SRFI directory layout
Lassi Kortela
(27 Jun 2020 12:40 UTC)
|
Re: SRFI directory layout
hga@xxxxxx
(27 Jun 2020 13:42 UTC)
|
Re: SRFI directory layout
Arthur A. Gleckler
(27 Jun 2020 20:07 UTC)
|
Re: SRFI directory layout
John Cowan
(27 Jun 2020 13:53 UTC)
|
Re: SRFI directory layout
Arthur A. Gleckler
(27 Jun 2020 20:01 UTC)
|
Re: errno groveler in C
Arthur A. Gleckler
(27 Jun 2020 16:35 UTC)
|
Re: errno groveler in C
hga@xxxxxx
(27 Jun 2020 12:21 UTC)
|
Re: errno groveler in C
Lassi Kortela
(27 Jun 2020 12:34 UTC)
|
Re: errno groveler in C
Lassi Kortela
(27 Jun 2020 13:51 UTC)
|
Re: errno groveler in C
hga@xxxxxx
(27 Jun 2020 14:24 UTC)
|
Re: errno groveler in C Lassi Kortela (27 Jun 2020 14:32 UTC)
|
>> The POSIX ones are printed unconditionally -- we assume they are >> always defined and do no #ifdef check. > > Unfortunately it's not true for OpenBSD, it omits 2 of the reserved > defines, and 4 from System V STREAMS. I wonder if any others refuse > to define all of them, despite the option of just ignoring the ones > they don't use. Wow, thank you for being vigilant! It's always a pleasure to work with detail-oriented people. I managed to replicate your situation with OpenBSD: $ clang -Weverything -ansi -pedantic -o grovel grovel.c && ./grovel grovel.c:166:8: error: use of undeclared identifier 'EMULTIHOP' PR(EMULTIHOP); ^ grovel.c:188:8: error: use of undeclared identifier 'ENODATA' PR(ENODATA); ^ grovel.c:196:8: error: use of undeclared identifier 'ENOLINK' PR(ENOLINK); ^ grovel.c:210:8: error: use of undeclared identifier 'ENOSR' PR(ENOSR); ^ grovel.c:211:8: error: use of undeclared identifier 'ENOSTR' PR(ENOSTR); ^ grovel.c:294:8: error: use of undeclared identifier 'ETIME' PR(ETIME); ^ 6 errors generated. POSIX (https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html) gives the impression that all of the errno values listed there are required -- none are optional. If OpenBSD strives to be POSIX-compliant, those errors would be bugs in OpenBSD. However, as a practical matter, if something as correctness-obsessed as OpenBSD omits some of the values, other OSes probably do as well. Hence we should probably #ifdef-guard all of them. Do you agree.