Module Name: src
Committed By: martin
Date: Fri Oct 11 19:07:20 UTC 2024
Modified Files:
src/sys/sys [netbsd-10]: endian.h
Log Message:
Pull up following revision(s) (requested by riastradh in ticket #952):
sys/sys/endian.h: revision 1.32
sys/sys/endian.h: revision 1.33
sys/sys/endian.h: revision 1.34
sys/sys/endian.h: revision 1.35
break the cycle: this does not need <sys/types.h> it only needs <sys/stdint.h>
arpa/inet.h: Define htonl &c. under _POSIX_C_SOURCE >= 200112L too.
These do not require _XOPEN_SOURCE as of POSIX 2001:
https://pubs.opengroup.org/onlinepubs/009696799/functions/htonl.html
XXX Since this change is actually sys/endian.h, in principle it might
bleed into header files than just arpa/inet.h. But sys/endian.h is
not used by anything that looks especially risky to me.
PR standards/57806: #include <arpa/inet.h> fails to define
htonl/htons/ntohl/ntohs under _POSIX_C_SOURCE=200809L
sys/endian.h: Hide le32enc/be32enc/... under _NETBSD_SOURCE.
These are non-standard extensions, so they should not be exposed by,
e.g., _XOPEN_SOURCE=700.
PR standards/57807: #include <arpa/inet.h> spuriously defines
le32enc/be32enc/... under _XOPEN_SOURCE=700
sys/endian.h: sync comment with code
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.31.4.1 src/sys/sys/endian.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/endian.h
diff -u src/sys/sys/endian.h:1.31 src/sys/sys/endian.h:1.31.4.1
--- src/sys/sys/endian.h:1.31 Mon Aug 8 18:55:18 2022
+++ src/sys/sys/endian.h Fri Oct 11 19:07:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: endian.h,v 1.31 2022/08/08 18:55:18 rillig Exp $ */
+/* $NetBSD: endian.h,v 1.31.4.1 2024/10/11 19:07:20 martin Exp $ */
/*
* Copyright (c) 1987, 1991, 1993
@@ -45,14 +45,16 @@
#define _PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */
-#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
+#if defined(_XOPEN_SOURCE) || \
+ (_POSIX_C_SOURCE - 0) >= 200112L || \
+ defined(_NETBSD_SOURCE)
#ifndef _LOCORE
/* C-family endian-ness definitions */
#include <sys/ansi.h>
#include <sys/cdefs.h>
-#include <sys/types.h>
+#include <sys/stdint.h>
#ifndef in_addr_t
typedef __in_addr_t in_addr_t;
@@ -72,7 +74,7 @@ uint16_t ntohs(uint16_t) __constfunc;
__END_DECLS
#endif /* !_LOCORE */
-#endif /* _XOPEN_SOURCE || _NETBSD_SOURCE */
+#endif /* _XOPEN_SOURCE || _POSIX_C_SOURCE >= 200112L || _NETBSD_SOURCE */
#include <machine/endian_machdep.h>
@@ -190,6 +192,8 @@ __END_DECLS
* to/from an octet stream.
*/
+#ifdef _NETBSD_SOURCE
+
#if __GNUC_PREREQ__(2, 95)
#define __GEN_ENDIAN_ENC(bits, endian) \
@@ -335,6 +339,8 @@ le64dec(const void *buf)
#endif /* GCC >= 2.95 */
+#endif /* _NETBSD_SOURCE */
+
#endif /* !_LOCORE */
#endif /* _XOPEN_SOURCE || _NETBSD_SOURCE */
#endif /* !_SYS_ENDIAN_H_ */