From: Sean Christopherson <seanjc@google.com>
To: Hisam Mehboob <hisamshar@gmail.com>
Cc: acme@kernel.org, shuah@kernel.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Aqib Faruqui <aqibaf@amazon.com>
Subject: Re: [PATCH] tools/include/linux/bitops.h: undef PAGE_SIZE after including limits.h
Date: Tue, 29 Sep 2026 06:49:25 -0700 [thread overview]
Message-ID: <arvB5QqK68SJkq86@google.com> (raw)
In-Reply-To: <20260507234854.273536-2-hisamshar@gmail.com>
On Fri, May 08, 2026, Hisam Mehboob wrote:
> musl libc defines PAGE_SIZE as a signed int in <limits.h>
> under _GNU_SOURCE, conflicting with kernel headers that
> require an unsigned 64-bit definition:
>
> include/x86/processor.h:372:9: warning: 'PAGE_SIZE' redefined
> /usr/include/x86_64-linux-musl/limits.h:97:9: note: this is the
> location of the previous definition
>
> Undefine PAGE_SIZE immediately after the #include <limits.h> to
> prevent musl's definition from leaking into kernel headers. This
> is a no-op on glibc, which does not define PAGE_SIZE in <limits.h>.
Sorry, but I don't like this option either, as it only works if whatever defines
PAGE_SIZE is included after <limits.h>, and obviously doesn't help if something
includes <limits.h> directly without including bitops.h. Which might not happen
in the current code base, but given that building against musl is obviously not
very common, it's not hard to imagine such an issue "sneaking" in.
What if we explicity force an include+undef in the KVM selftests header that has
the requirement that PAGE_SIZE is a 64-bit unsigned value? The downside is that
it would hide bugs if something other than musl pre-defines PAGE_SIZE, but that's
unlikely to be fatal, and I don't think would lead to a game of whack-a-mole.
diff --git a/tools/testing/selftests/kvm/include/x86/processor.h b/tools/testing/selftests/kvm/include/x86/processor.h
index 7579e692bc2b..ee8186e75552 100644
--- a/tools/testing/selftests/kvm/include/x86/processor.h
+++ b/tools/testing/selftests/kvm/include/x86/processor.h
@@ -6,6 +6,14 @@
#ifndef SELFTEST_KVM_PROCESSOR_H
#define SELFTEST_KVM_PROCESSOR_H
+/*
+ * Explicitly include the system's limit.h and undefine PAGE_SIZE to workaround
+ * an incompatibility where musl defines PAGE_SIZE as a signed integer, whereas
+ * KVM selftests expect it to be a 64-bit unsigned value.
+ */
+#include <limits.h>
+#undef PAGE_SIZE
+
#include <assert.h>
#include <stdint.h>
#include <syscall.h>
> Reported-by: Aqib Faruqui <aqibaf@amazon.com>
> Link: https://lore.kernel.org/kvm/aL8e0MMa4U2-nstQ@google.com/
> Signed-off-by: Hisam Mehboob <hisamshar@gmail.com>
> ---
> tools/include/linux/bitops.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/include/linux/bitops.h b/tools/include/linux/bitops.h
> index b4e4cd071f8c..62117a77ceb5 100644
> --- a/tools/include/linux/bitops.h
> +++ b/tools/include/linux/bitops.h
> @@ -4,6 +4,7 @@
>
> #include <asm/types.h>
> #include <limits.h>
> +#undef PAGE_SIZE
> #ifndef __WORDSIZE
> #define __WORDSIZE (__SIZEOF_LONG__ * 8)
> #endif
> --
> 2.51.0
>
>
prev parent reply other threads:[~2026-09-29 13:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 23:48 Hisam Mehboob
2026-09-29 13:49 ` Sean Christopherson [this message]
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=arvB5QqK68SJkq86@google.com \
--to=seanjc@google.com \
--cc=acme@kernel.org \
--cc=aqibaf@amazon.com \
--cc=hisamshar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=shuah@kernel.org \
/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
all inboxes | Powered by JetHome®