From: Alexandru Elisei <alexandru.elisei@arm.com>
To: Andre Przywara <andre.przywara@arm.com>
Cc: "Will Deacon" <will@kernel.org>,
"Julien Thierry" <julien.thierry.kdev@gmail.com>,
kvm@vger.kernel.org, "J . Neuschäfer" <j.neuschaefer@gmx.net>
Subject: Re: [PATCH kvmtool] remove wordsize.h inclusion (for musl compatibility)
Date: Fri, 2 Aug 2024 10:55:54 +0100 [thread overview]
Message-ID: <ZqytKiGEeqMLYvO3@raptor> (raw)
In-Reply-To: <20240801111054.818765-1-andre.przywara@arm.com>
Hi Andre,
On Thu, Aug 01, 2024 at 12:10:54PM +0100, Andre Przywara wrote:
> The wordsize.h header file and the __WORDSIZE definition do not seem
> to be universal, the musl libc for instance has the definition in a
> different header file. This breaks compilation of kvmtool against musl.
>
> The two leading underscores suggest a compiler-internal symbol anyway, so
> let's just remove that particular macro usage entirely, and replace it
> with the number we really want: the size of a "long" type.
>
> Reported-by: J. Neuschäfer <j.neuschaefer@gmx.net>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
> Hi,
>
> can someone test this on a proper/pure musl installation? I tested this
> with Ubuntu's musl-gcc wrapper, but this didn't show the problem before,
> so I guess there are subtle differences.
>
> Cheers,
> Andre
>
> include/linux/bitops.h | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> index ae33922f5..ee8fd5609 100644
> --- a/include/linux/bitops.h
> +++ b/include/linux/bitops.h
> @@ -1,15 +1,13 @@
> #ifndef _KVM_LINUX_BITOPS_H_
> #define _KVM_LINUX_BITOPS_H_
>
> -#include <bits/wordsize.h>
> -
> #include <linux/kernel.h>
> #include <linux/compiler.h>
> #include <asm/hweight.h>
>
> -#define BITS_PER_LONG __WORDSIZE
> #define BITS_PER_BYTE 8
> -#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
> +#define BITS_PER_LONG (BITS_PER_BYTE * sizeof(long))
> +#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_LONG)
This makes perfect sense to me. I would just like to point out that the code
already used this definition for the number of bits in a long, in the
BITS_TO_LONGS() macro, where it used BITS_PER_BYTE * sizeof(long) instead of
BITS_PER_LONG.
Also tested this by cross-compiling for arm and arm64 on an x86 host, and
compiling natively for arm64.
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Thanks,
Alex
>
> #define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
>
> --
> 2.25.1
>
next prev parent reply other threads:[~2024-08-02 9:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-01 11:10 [PATCH kvmtool] remove wordsize.h inclusion (for musl compatibility) Andre Przywara
2024-08-02 9:55 ` Alexandru Elisei [this message]
2024-08-04 23:15 ` J. Neuschäfer
2024-08-05 13:43 ` Will Deacon
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=ZqytKiGEeqMLYvO3@raptor \
--to=alexandru.elisei@arm.com \
--cc=andre.przywara@arm.com \
--cc=j.neuschaefer@gmx.net \
--cc=julien.thierry.kdev@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=will@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 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.