From: Jakub Kicinski <kuba@kernel.org>
To: Nick Desaulniers <ndesaulniers@google.com>
Cc: Jon Maloy <jmaloy@redhat.com>, Ying Xue <ying.xue@windriver.com>,
Arnd Bergmann <arnd@arndb.de>,
Masahiro Yamada <masahiroy@kernel.org>,
David Howells <dhowells@redhat.com>,
Nathan Chancellor <nathan@kernel.org>,
netdev@vger.kernel.org, tipc-discussion@lists.sourceforge.net,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH v2] net, uapi: remove inclusion of arpa/inet.h
Date: Tue, 29 Mar 2022 16:01:37 -0700 [thread overview]
Message-ID: <20220329160137.0708b1ef@kernel.org> (raw)
In-Reply-To: <20220329223956.486608-1-ndesaulniers@google.com>
On Tue, 29 Mar 2022 15:39:56 -0700 Nick Desaulniers wrote:
> Testing out CONFIG_UAPI_HEADER_TEST=y with a prebuilt Bionic sysroot
> from Android's SDK, I encountered an error:
>
> HDRTEST usr/include/linux/fsi.h
> In file included from <built-in>:1:
> In file included from ./usr/include/linux/tipc_config.h:46:
> prebuilts/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arpa/inet.h:39:1:
> error: unknown type name 'in_addr_t'
> in_addr_t inet_addr(const char* __s);
> ^
>
> This is because Bionic has a bug in its inclusion chain. I sent a patch
> to fix that, but looking closer at include/uapi/linux/tipc_config.h,
> there's a comment that it includes arpa/inet.h for ntohs;
> but ntohs is not defined in any UAPI header. For now, reuse the
> definitions from include/linux/byteorder/generic.h, since the various
> conversion functions do exist in UAPI headers:
> include/uapi/linux/byteorder/big_endian.h
> include/uapi/linux/byteorder/little_endian.h
>
> Link: https://android-review.googlesource.com/c/platform/bionic/+/2048127
> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
> ---
> include/uapi/linux/tipc_config.h | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/include/uapi/linux/tipc_config.h b/include/uapi/linux/tipc_config.h
> index 4dfc05651c98..2c494b7ae008 100644
> --- a/include/uapi/linux/tipc_config.h
> +++ b/include/uapi/linux/tipc_config.h
> @@ -43,10 +43,6 @@
> #include <linux/tipc.h>
> #include <asm/byteorder.h>
>
> -#ifndef __KERNEL__
> -#include <arpa/inet.h> /* for ntohs etc. */
> -#endif
Hm, how do we know no user space depends on this include?
If nobody screams at us we can try, but then it needs to go into -next,
and net-next is closed ATM, you'll need to repost once the merge window
is over.
> /*
> * Configuration
> *
> @@ -257,6 +253,10 @@ struct tlv_desc {
> #define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen)))
> #define TLV_DATA(tlv) ((void *)((char *)(tlv) + TLV_LENGTH(0)))
>
> +#define __htonl(x) __cpu_to_be32(x)
> +#define __htons(x) __cpu_to_be16(x)
> +#define __ntohs(x) __be16_to_cpu(x)
> +
> static inline int TLV_OK(const void *tlv, __u16 space)
> {
> /*
> @@ -269,33 +269,33 @@ static inline int TLV_OK(const void *tlv, __u16 space)
> */
>
> return (space >= TLV_SPACE(0)) &&
> - (ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space);
> + (__ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space);
Also why add the defines / macros?
We could switch to __cpu_to_be16() etc. directly, it seems.
next prev parent reply other threads:[~2022-03-29 23:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-29 21:29 [PATCH] net, uapi: remove inclusion of arpa/inet.h Nick Desaulniers
2022-03-29 21:50 ` Nick Desaulniers
2022-03-29 22:09 ` Nick Desaulniers
2022-03-29 22:26 ` Nick Desaulniers
2022-03-29 22:39 ` [PATCH v2] " Nick Desaulniers
2022-03-29 23:01 ` Jakub Kicinski [this message]
2022-03-29 23:12 ` Nick Desaulniers
2022-04-04 17:54 ` [PATCH net-next v3] " Nick Desaulniers
2022-04-06 13:10 ` patchwork-bot+netdevbpf
2022-03-30 6:08 ` [PATCH] " Arnd Bergmann
2022-03-30 6:11 ` Arnd Bergmann
2022-03-29 23:03 ` Nick Desaulniers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220329160137.0708b1ef@kernel.org \
--to=kuba@kernel.org \
--cc=arnd@arndb.de \
--cc=dhowells@redhat.com \
--cc=jmaloy@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=netdev@vger.kernel.org \
--cc=tipc-discussion@lists.sourceforge.net \
--cc=ying.xue@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.