From: Daniel Gomez via B4 Relay <devnull+da.gomez.samsung.com@kernel.org>
To: "Masahiro Yamada" <masahiroy@kernel.org>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nicolas Schier" <nicolas@fjasle.eu>,
"Lucas De Marchi" <lucas.demarchi@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"William Hubbs" <w.d.hubbs@gmail.com>,
"Chris Brannon" <chris@the-brannons.com>,
"Kirk Reiser" <kirk@reisers.ca>,
"Samuel Thibault" <samuel.thibault@ens-lyon.org>,
"Paul Moore" <paul@paul-moore.com>,
"Stephen Smalley" <stephen.smalley.work@gmail.com>,
"Ondrej Mosnacek" <omosnace@redhat.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>, "Marc Zyngier" <maz@kernel.org>,
"Oliver Upton" <oliver.upton@linux.dev>,
"James Morse" <james.morse@arm.com>,
"Suzuki K Poulose" <suzuki.poulose@arm.com>,
"Zenghui Yu" <yuzenghui@huawei.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Bill Wendling" <morbo@google.com>,
"Justin Stitt" <justinstitt@google.com>
Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
speakup@linux-speakup.org, selinux@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-serial@vger.kernel.org, llvm@lists.linux.dev,
Finn Behrens <me@kloenk.dev>,
"Daniel Gomez (Samsung)" <d+samsung@kruces.com>,
gost.dev@samsung.com, Daniel Gomez <da.gomez@samsung.com>
Subject: [PATCH 09/12] include: add endian.h support
Date: Wed, 07 Aug 2024 01:09:23 +0200 [thread overview]
Message-ID: <20240807-macos-build-support-v1-9-4cd1ded85694@samsung.com> (raw)
In-Reply-To: <20240807-macos-build-support-v1-0-4cd1ded85694@samsung.com>
From: Daniel Gomez <da.gomez@samsung.com>
macOS hosts do not include endian.h header required for gen-hyper
object. Add a copy of the include/endian.h from the GNU C Library
(glibc), version glib-2.40 into include/endian and a copy of bits/
uintn-identity.h into include/endian/bits and update the gen-hyper
Makefile to include the library path.
Remove the following from glibc include/endian.h:
diff --git a/include/endian/endian.h b/include/endian/endian.h
index fd20a2b1985d..f70e07f1d3c6 100644
--- a/include/endian/endian.h
+++ b/include/endian/endian.h
@@ -18,11 +18,6 @@
#ifndef _ENDIAN_H
#define _ENDIAN_H 1
-#include <features.h>
-
-/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */
-#include <bits/endian.h>
-
#ifdef __USE_MISC
# define LITTLE_ENDIAN __LITTLE_ENDIAN
# define BIG_ENDIAN __BIG_ENDIAN
@@ -30,9 +25,6 @@
# define BYTE_ORDER __BYTE_ORDER
#endif
-#if defined __USE_MISC && !defined __ASSEMBLER__
-/* Conversion interfaces. */
-# include <bits/byteswap.h>
# include <bits/uintn-identity.h>
# if __BYTE_ORDER == __LITTLE_ENDIAN
@@ -67,6 +59,5 @@
# define be64toh(x) __uint64_identity (x)
# define le64toh(x) __bswap_64 (x)
# endif
-#endif
#endif /* endian.h */
Remove the following from glibc bits/uintn-identity.h:
diff --git a/include/endian/bits/uintn-identity.h b/include/endian/bits/uintn-identity.h
index 8104070583c7..0310c9d955da 100644
--- a/include/endian/bits/uintn-identity.h
+++ b/include/endian/bits/uintn-identity.h
@@ -23,8 +23,6 @@
#ifndef _BITS_UINTN_IDENTITY_H
#define _BITS_UINTN_IDENTITY_H 1
-#include <bits/types.h>
-
/* These inline functions are to ensure the appropriate type
conversions and associated diagnostics from macros that convert to
a given endianness. */
Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
arch/arm64/kvm/hyp/nvhe/Makefile | 2 +-
include/endian/bits/uintn-identity.h | 48 +++++++++++++++++++++++++++
include/endian/endian.h | 63 ++++++++++++++++++++++++++++++++++++
3 files changed, 112 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile
index 40541c0812bf..1bbe2c2a4aed 100644
--- a/arch/arm64/kvm/hyp/nvhe/Makefile
+++ b/arch/arm64/kvm/hyp/nvhe/Makefile
@@ -15,7 +15,7 @@ ccflags-y += -fno-stack-protector \
$(DISABLE_STACKLEAK_PLUGIN)
hostprogs := gen-hyprel
-HOST_EXTRACFLAGS += -I$(objtree)/include -I$(srctree)/include/elf
+HOST_EXTRACFLAGS += -I$(objtree)/include -I$(srctree)/include/elf -I$(srctree)/include/endian
lib-objs := clear_page.o copy_page.o memcpy.o memset.o
lib-objs := $(addprefix ../../../lib/, $(lib-objs))
diff --git a/include/endian/bits/uintn-identity.h b/include/endian/bits/uintn-identity.h
new file mode 100644
index 000000000000..0310c9d955da
--- /dev/null
+++ b/include/endian/bits/uintn-identity.h
@@ -0,0 +1,48 @@
+/* Inline functions to return unsigned integer values unchanged.
+ Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#if !defined _NETINET_IN_H && !defined _ENDIAN_H
+# error "Never use <bits/uintn-identity.h> directly; include <netinet/in.h> or <endian.h> instead."
+#endif
+
+#ifndef _BITS_UINTN_IDENTITY_H
+#define _BITS_UINTN_IDENTITY_H 1
+
+/* These inline functions are to ensure the appropriate type
+ conversions and associated diagnostics from macros that convert to
+ a given endianness. */
+
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#endif /* _BITS_UINTN_IDENTITY_H. */
diff --git a/include/endian/endian.h b/include/endian/endian.h
new file mode 100644
index 000000000000..f70e07f1d3c6
--- /dev/null
+++ b/include/endian/endian.h
@@ -0,0 +1,63 @@
+/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ENDIAN_H
+#define _ENDIAN_H 1
+
+#ifdef __USE_MISC
+# define LITTLE_ENDIAN __LITTLE_ENDIAN
+# define BIG_ENDIAN __BIG_ENDIAN
+# define PDP_ENDIAN __PDP_ENDIAN
+# define BYTE_ORDER __BYTE_ORDER
+#endif
+
+# include <bits/uintn-identity.h>
+
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+# define htobe16(x) __bswap_16 (x)
+# define htole16(x) __uint16_identity (x)
+# define be16toh(x) __bswap_16 (x)
+# define le16toh(x) __uint16_identity (x)
+
+# define htobe32(x) __bswap_32 (x)
+# define htole32(x) __uint32_identity (x)
+# define be32toh(x) __bswap_32 (x)
+# define le32toh(x) __uint32_identity (x)
+
+# define htobe64(x) __bswap_64 (x)
+# define htole64(x) __uint64_identity (x)
+# define be64toh(x) __bswap_64 (x)
+# define le64toh(x) __uint64_identity (x)
+
+# else
+# define htobe16(x) __uint16_identity (x)
+# define htole16(x) __bswap_16 (x)
+# define be16toh(x) __uint16_identity (x)
+# define le16toh(x) __bswap_16 (x)
+
+# define htobe32(x) __uint32_identity (x)
+# define htole32(x) __bswap_32 (x)
+# define be32toh(x) __uint32_identity (x)
+# define le32toh(x) __bswap_32 (x)
+
+# define htobe64(x) __uint64_identity (x)
+# define htole64(x) __bswap_64 (x)
+# define be64toh(x) __uint64_identity (x)
+# define le64toh(x) __bswap_64 (x)
+# endif
+
+#endif /* endian.h */
--
Git-146)
next prev parent reply other threads:[~2024-08-06 23:10 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-06 23:09 [PATCH 00/12] Enable build system on macOS hosts Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 01/12] scripts: subarch.include: fix SUBARCH on MacOS hosts Daniel Gomez via B4 Relay
2024-08-07 15:07 ` Nicolas Schier
2024-08-23 16:12 ` Masahiro Yamada
2024-08-23 22:14 ` Daniel Gomez (Samsung)
2024-08-24 19:34 ` Daniel Gomez (Samsung)
2024-08-06 23:09 ` [PATCH 02/12] kbuild: add header_install dependency to scripts Daniel Gomez via B4 Relay
2024-08-07 15:23 ` Nicolas Schier
2024-08-06 23:09 ` [PATCH 03/12] file2alias: fix uuid_t definitions for macos Daniel Gomez via B4 Relay
2024-08-07 15:30 ` Nicolas Schier
2024-08-07 21:31 ` Daniel Gomez
2024-08-06 23:09 ` [PATCH 04/12] drm/xe: xe_gen_wa_oob: fix program_invocation_short_name " Daniel Gomez via B4 Relay
2024-08-07 1:50 ` Lucas De Marchi
2024-08-07 8:13 ` Daniel Gomez
2024-08-07 11:25 ` Lucas De Marchi
2024-08-06 23:09 ` [PATCH 05/12] accessiblity/speakup: genmap and makemapdata require linux/version.h Daniel Gomez via B4 Relay
2024-08-07 15:34 ` Masahiro Yamada
2024-08-06 23:09 ` [PATCH 06/12] selinux/genheaders: include bitsperlong and posix_types headers Daniel Gomez via B4 Relay
2024-08-07 15:29 ` Paul Moore
2024-08-07 15:38 ` Nicolas Schier
2024-08-07 15:44 ` Masahiro Yamada
2024-08-07 16:20 ` Paul Moore
2024-08-07 21:41 ` Daniel Gomez
2024-08-08 11:12 ` Nicolas Schier
2024-08-06 23:09 ` [PATCH 07/12] selinux/mdp: " Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 08/12] include: add elf.h support Daniel Gomez via B4 Relay
2024-08-07 11:04 ` Greg Kroah-Hartman
2024-08-07 14:13 ` Daniel Gomez
2024-08-07 14:18 ` Greg Kroah-Hartman
2024-08-07 15:46 ` Nicolas Schier
2024-08-23 22:54 ` Daniel Gomez
2024-08-30 19:53 ` Nicolas Schier
2024-09-01 16:15 ` Masahiro Yamada
2024-09-05 8:56 ` Daniel Gomez
2024-09-05 23:58 ` Masahiro Yamada
2024-09-06 8:34 ` Daniel Gomez
2024-08-06 23:09 ` Daniel Gomez via B4 Relay [this message]
2024-08-06 23:09 ` [PATCH 10/12] scripts/mod: add byteswap support Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 11/12] tty/vt: conmakehash requires linux/limits.h Daniel Gomez via B4 Relay
2024-08-09 12:15 ` Masahiro Yamada
2024-08-09 13:47 ` Daniel Gomez (Samsung)
2024-08-06 23:09 ` [PATCH 12/12] scripts/kallsyms: add compatibility support for macos Daniel Gomez via B4 Relay
2024-08-07 11:01 ` [PATCH 00/12] Enable build system on macOS hosts Greg Kroah-Hartman
2024-08-07 13:56 ` Daniel Gomez
2024-08-07 14:19 ` Greg Kroah-Hartman
2024-08-17 1:11 ` Barry Song
2024-08-18 16:55 ` Klaus Jensen
2024-08-23 22:37 ` Daniel Gomez
2024-08-24 5:51 ` Greg Kroah-Hartman
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=20240807-macos-build-support-v1-9-4cd1ded85694@samsung.com \
--to=devnull+da.gomez.samsung.com@kernel.org \
--cc=airlied@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=chris@the-brannons.com \
--cc=d+samsung@kruces.com \
--cc=da.gomez@samsung.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gost.dev@samsung.com \
--cc=gregkh@linuxfoundation.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=james.morse@arm.com \
--cc=jirislaby@kernel.org \
--cc=justinstitt@google.com \
--cc=kirk@reisers.ca \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=lucas.demarchi@intel.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=masahiroy@kernel.org \
--cc=maz@kernel.org \
--cc=me@kloenk.dev \
--cc=morbo@google.com \
--cc=mripard@kernel.org \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=nicolas@fjasle.eu \
--cc=oliver.upton@linux.dev \
--cc=omosnace@redhat.com \
--cc=paul@paul-moore.com \
--cc=rodrigo.vivi@intel.com \
--cc=samuel.thibault@ens-lyon.org \
--cc=selinux@vger.kernel.org \
--cc=speakup@linux-speakup.org \
--cc=stephen.smalley.work@gmail.com \
--cc=suzuki.poulose@arm.com \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=w.d.hubbs@gmail.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox