I thank you, you got what I wanted to know. I also thank Peter Hansteen, Stuart Henderson, Ted Unangst and Alex Bochmann for their polite and serious answers. Also Theo for his polite recomendation for my happyness: I will think about it.
On Fri, 12 Aug 2016, Philip Guenther wrote:
Yes, the previous situation with <machine/endian.h> and <sys/endian.h> was confusing (code was including the wrong header and not getting the
Well, it was necessary to substitute <machine/endian.h> with <sys/types.h>, and to include types.h before including socket.h or uio.h. What is necessary and the changes can be recognised by comparing the man pages of byteorder, socket and readv in the many versions of OpenBSD, as well of 4.4BSD and of FreeBSD. It seems there is till now no standard, LibreSSL will not compile in FreeBSD 10.3 out of the box (according to the man pages). It seems that you see the progress in that there is now a de jure POSIX standard that OpenBSD will follow acribically, instead of a de facto BSD standard (if there is such). And if the whole is a technical progress, is a more complicated thing. I preffer to take a constant from sys/params.h at compile time than getting it with a call of sysconf() at run time. The older standards arose perhaps from considerations that today are forgotten or play no role anymore. Later one will have different prefferences and new standards. As Ted said: standards change. And we will always be "porting" software. In any case, this was not a problem (a problem is for example the Flag AI_ADDRCONFIG for getaddrinfo() in tls/tls_client.c or a lot of warnings in compiling in tls directory). Rodrigo.