All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, loongarch@lists.linux.dev,
	linux-arch@vger.kernel.org, bpf@vger.kernel.org,
	linux-perf-users@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	loongson-kernel@lists.loongnix.cn
Subject: Re: [PATCH v3 1/2] asm-generic: Unify uapi bitsperlong.h for arm64, riscv and loongarch
Date: Thu, 27 Jul 2023 14:36:48 -0700	[thread overview]
Message-ID: <20230727213648.GA354736@dev-arch.thelio-3990X> (raw)
In-Reply-To: <1687443219-11946-2-git-send-email-yangtiezhu@loongson.cn>

Hi Tiezhu and Arnd,

On Thu, Jun 22, 2023 at 10:13:38PM +0800, Tiezhu Yang wrote:
> Now we specify the minimal version of GCC as 5.1 and Clang/LLVM as 11.0.0
> in Documentation/process/changes.rst, __CHAR_BIT__ and __SIZEOF_LONG__ are
> usable, it is probably fine to unify the definition of __BITS_PER_LONG as
> (__CHAR_BIT__ * __SIZEOF_LONG__) in asm-generic uapi bitsperlong.h.
> 
> In order to keep safe and avoid regression, only unify uapi bitsperlong.h
> for some archs such as arm64, riscv and loongarch which are using newer
> toolchains that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__.
> 
> Suggested-by: Xi Ruoyao <xry111@xry111.site>
> Link: https://lore.kernel.org/all/d3e255e4746de44c9903c4433616d44ffcf18d1b.camel@xry111.site/
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Link: https://lore.kernel.org/linux-arch/a3a4f48a-07d4-4ed9-bc53-5d383428bdd2@app.fastmail.com/
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/arm64/include/uapi/asm/bitsperlong.h          | 24 ----------------------
>  arch/loongarch/include/uapi/asm/bitsperlong.h      |  9 --------
>  arch/riscv/include/uapi/asm/bitsperlong.h          | 14 -------------
>  include/uapi/asm-generic/bitsperlong.h             | 13 +++++++++++-
>  tools/arch/arm64/include/uapi/asm/bitsperlong.h    | 24 ----------------------
>  .../arch/loongarch/include/uapi/asm/bitsperlong.h  |  9 --------
>  tools/arch/riscv/include/uapi/asm/bitsperlong.h    | 14 -------------
>  tools/include/uapi/asm-generic/bitsperlong.h       | 14 ++++++++++++-
>  tools/include/uapi/asm/bitsperlong.h               |  6 ------
>  9 files changed, 25 insertions(+), 102 deletions(-)
>  delete mode 100644 arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/riscv/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.h

I think this change has backwards compatibility concerns, as it breaks
building certain host tools on the stable releases (at least 6.4 and
6.1, as that is where I noticed this). I see the following error on my
aarch64 system:

  $ make -skj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux- mrproper defconfig prepare
  In file included from /usr/include/asm/bitsperlong.h:1,
                   from /usr/include/asm-generic/int-ll64.h:12,
                   from /usr/include/asm-generic/types.h:7,
                   from /usr/include/asm/types.h:1,
                   from tools/include/linux/types.h:13,
                   from tools/arch/x86/include/asm/orc_types.h:9,
                   from scripts/sorttable.h:96,
                   from scripts/sorttable.c:201:
  tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h
     14 | #error Inconsistent word size. Check asm/bitsperlong.h
        |  ^~~~~

A reverse bisect of 6.4 to 6.5-rc1 points to this patch. This Fedora
rawhide container has kernel-headers 6.5.0-0.rc2.git0.1.fc39 and the
error disappears when I downgrade to 6.4.0-0.rc7.git0.1.fc39. I have not
done a ton of triage/debugging so far, as I am currently hunting down
other regressions, but I figured I would get an initial report out,
since I noticed it when validating LLVM from the new release/17.x
branch. If there is any additional information I can provide or patches
I can test, I am more than happy to do so.

Cheers,
Nathan

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, loongarch@lists.linux.dev,
	linux-arch@vger.kernel.org, bpf@vger.kernel.org,
	linux-perf-users@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	loongson-kernel@lists.loongnix.cn
Subject: Re: [PATCH v3 1/2] asm-generic: Unify uapi bitsperlong.h for arm64, riscv and loongarch
Date: Thu, 27 Jul 2023 14:36:48 -0700	[thread overview]
Message-ID: <20230727213648.GA354736@dev-arch.thelio-3990X> (raw)
In-Reply-To: <1687443219-11946-2-git-send-email-yangtiezhu@loongson.cn>

Hi Tiezhu and Arnd,

On Thu, Jun 22, 2023 at 10:13:38PM +0800, Tiezhu Yang wrote:
> Now we specify the minimal version of GCC as 5.1 and Clang/LLVM as 11.0.0
> in Documentation/process/changes.rst, __CHAR_BIT__ and __SIZEOF_LONG__ are
> usable, it is probably fine to unify the definition of __BITS_PER_LONG as
> (__CHAR_BIT__ * __SIZEOF_LONG__) in asm-generic uapi bitsperlong.h.
> 
> In order to keep safe and avoid regression, only unify uapi bitsperlong.h
> for some archs such as arm64, riscv and loongarch which are using newer
> toolchains that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__.
> 
> Suggested-by: Xi Ruoyao <xry111@xry111.site>
> Link: https://lore.kernel.org/all/d3e255e4746de44c9903c4433616d44ffcf18d1b.camel@xry111.site/
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Link: https://lore.kernel.org/linux-arch/a3a4f48a-07d4-4ed9-bc53-5d383428bdd2@app.fastmail.com/
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/arm64/include/uapi/asm/bitsperlong.h          | 24 ----------------------
>  arch/loongarch/include/uapi/asm/bitsperlong.h      |  9 --------
>  arch/riscv/include/uapi/asm/bitsperlong.h          | 14 -------------
>  include/uapi/asm-generic/bitsperlong.h             | 13 +++++++++++-
>  tools/arch/arm64/include/uapi/asm/bitsperlong.h    | 24 ----------------------
>  .../arch/loongarch/include/uapi/asm/bitsperlong.h  |  9 --------
>  tools/arch/riscv/include/uapi/asm/bitsperlong.h    | 14 -------------
>  tools/include/uapi/asm-generic/bitsperlong.h       | 14 ++++++++++++-
>  tools/include/uapi/asm/bitsperlong.h               |  6 ------
>  9 files changed, 25 insertions(+), 102 deletions(-)
>  delete mode 100644 arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/riscv/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.h

I think this change has backwards compatibility concerns, as it breaks
building certain host tools on the stable releases (at least 6.4 and
6.1, as that is where I noticed this). I see the following error on my
aarch64 system:

  $ make -skj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux- mrproper defconfig prepare
  In file included from /usr/include/asm/bitsperlong.h:1,
                   from /usr/include/asm-generic/int-ll64.h:12,
                   from /usr/include/asm-generic/types.h:7,
                   from /usr/include/asm/types.h:1,
                   from tools/include/linux/types.h:13,
                   from tools/arch/x86/include/asm/orc_types.h:9,
                   from scripts/sorttable.h:96,
                   from scripts/sorttable.c:201:
  tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h
     14 | #error Inconsistent word size. Check asm/bitsperlong.h
        |  ^~~~~

A reverse bisect of 6.4 to 6.5-rc1 points to this patch. This Fedora
rawhide container has kernel-headers 6.5.0-0.rc2.git0.1.fc39 and the
error disappears when I downgrade to 6.4.0-0.rc7.git0.1.fc39. I have not
done a ton of triage/debugging so far, as I am currently hunting down
other regressions, but I figured I would get an initial report out,
since I noticed it when validating LLVM from the new release/17.x
branch. If there is any additional information I can provide or patches
I can test, I am more than happy to do so.

Cheers,
Nathan

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org>
To: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, loongarch@lists.linux.dev,
	linux-arch@vger.kernel.org, bpf@vger.kernel.org,
	linux-perf-users@vger.kernel.org,
	linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	loongson-kernel@lists.loongnix.cn
Subject: Re: [PATCH v3 1/2] asm-generic: Unify uapi bitsperlong.h for arm64, riscv and loongarch
Date: Thu, 27 Jul 2023 14:36:48 -0700	[thread overview]
Message-ID: <20230727213648.GA354736@dev-arch.thelio-3990X> (raw)
In-Reply-To: <1687443219-11946-2-git-send-email-yangtiezhu@loongson.cn>

Hi Tiezhu and Arnd,

On Thu, Jun 22, 2023 at 10:13:38PM +0800, Tiezhu Yang wrote:
> Now we specify the minimal version of GCC as 5.1 and Clang/LLVM as 11.0.0
> in Documentation/process/changes.rst, __CHAR_BIT__ and __SIZEOF_LONG__ are
> usable, it is probably fine to unify the definition of __BITS_PER_LONG as
> (__CHAR_BIT__ * __SIZEOF_LONG__) in asm-generic uapi bitsperlong.h.
> 
> In order to keep safe and avoid regression, only unify uapi bitsperlong.h
> for some archs such as arm64, riscv and loongarch which are using newer
> toolchains that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__.
> 
> Suggested-by: Xi Ruoyao <xry111@xry111.site>
> Link: https://lore.kernel.org/all/d3e255e4746de44c9903c4433616d44ffcf18d1b.camel@xry111.site/
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Link: https://lore.kernel.org/linux-arch/a3a4f48a-07d4-4ed9-bc53-5d383428bdd2@app.fastmail.com/
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>  arch/arm64/include/uapi/asm/bitsperlong.h          | 24 ----------------------
>  arch/loongarch/include/uapi/asm/bitsperlong.h      |  9 --------
>  arch/riscv/include/uapi/asm/bitsperlong.h          | 14 -------------
>  include/uapi/asm-generic/bitsperlong.h             | 13 +++++++++++-
>  tools/arch/arm64/include/uapi/asm/bitsperlong.h    | 24 ----------------------
>  .../arch/loongarch/include/uapi/asm/bitsperlong.h  |  9 --------
>  tools/arch/riscv/include/uapi/asm/bitsperlong.h    | 14 -------------
>  tools/include/uapi/asm-generic/bitsperlong.h       | 14 ++++++++++++-
>  tools/include/uapi/asm/bitsperlong.h               |  6 ------
>  9 files changed, 25 insertions(+), 102 deletions(-)
>  delete mode 100644 arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 arch/riscv/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/arm64/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/loongarch/include/uapi/asm/bitsperlong.h
>  delete mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.h

I think this change has backwards compatibility concerns, as it breaks
building certain host tools on the stable releases (at least 6.4 and
6.1, as that is where I noticed this). I see the following error on my
aarch64 system:

  $ make -skj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux- mrproper defconfig prepare
  In file included from /usr/include/asm/bitsperlong.h:1,
                   from /usr/include/asm-generic/int-ll64.h:12,
                   from /usr/include/asm-generic/types.h:7,
                   from /usr/include/asm/types.h:1,
                   from tools/include/linux/types.h:13,
                   from tools/arch/x86/include/asm/orc_types.h:9,
                   from scripts/sorttable.h:96,
                   from scripts/sorttable.c:201:
  tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h
     14 | #error Inconsistent word size. Check asm/bitsperlong.h
        |  ^~~~~

A reverse bisect of 6.4 to 6.5-rc1 points to this patch. This Fedora
rawhide container has kernel-headers 6.5.0-0.rc2.git0.1.fc39 and the
error disappears when I downgrade to 6.4.0-0.rc7.git0.1.fc39. I have not
done a ton of triage/debugging so far, as I am currently hunting down
other regressions, but I figured I would get an initial report out,
since I noticed it when validating LLVM from the new release/17.x
branch. If there is any additional information I can provide or patches
I can test, I am more than happy to do so.

Cheers,
Nathan

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-07-27 21:36 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-22 14:13 [PATCH v3 0/2] Unify uapi bitsperlong.h Tiezhu Yang
2023-06-22 14:13 ` Tiezhu Yang
2023-06-22 14:13 ` Tiezhu Yang
2023-06-22 14:13 ` [PATCH v3 1/2] asm-generic: Unify uapi bitsperlong.h for arm64, riscv and loongarch Tiezhu Yang
2023-06-22 14:13   ` Tiezhu Yang
2023-06-22 14:13   ` Tiezhu Yang
2023-07-27 21:36   ` Nathan Chancellor [this message]
2023-07-27 21:36     ` Nathan Chancellor
2023-07-27 21:36     ` Nathan Chancellor
2023-07-28 11:00     ` Arnd Bergmann
2023-07-28 11:00       ` Arnd Bergmann
2023-07-28 11:00       ` Arnd Bergmann
2023-07-28 17:31       ` Nathan Chancellor
2023-07-28 17:31         ` Nathan Chancellor
2023-07-28 17:31         ` Nathan Chancellor
2023-07-28 20:56         ` Arnd Bergmann
2023-07-28 20:56           ` Arnd Bergmann
2023-07-28 20:56           ` Arnd Bergmann
2023-07-28 23:44           ` Nathan Chancellor
2023-07-28 23:44             ` Nathan Chancellor
2023-07-28 23:44             ` Nathan Chancellor
2023-07-29  7:59             ` Arnd Bergmann
2023-07-29  7:59               ` Arnd Bergmann
2023-07-29  7:59               ` Arnd Bergmann
2023-07-29 17:46               ` Nathan Chancellor
2023-07-29 17:46                 ` Nathan Chancellor
2023-07-29 17:46                 ` Nathan Chancellor
2023-07-29 21:12                 ` Arnd Bergmann
2023-07-29 21:12                   ` Arnd Bergmann
2023-07-29 21:12                   ` Arnd Bergmann
2023-07-31 16:04                   ` Nathan Chancellor
2023-07-31 16:04                     ` Nathan Chancellor
2023-07-31 16:04                     ` Nathan Chancellor
2023-06-22 14:13 ` [PATCH v3 2/2] tools arch: Remove uapi bitsperlong.h of hexagon and microblaze Tiezhu Yang
2023-06-22 14:13   ` Tiezhu Yang
2023-06-22 14:13   ` Tiezhu Yang
2023-06-22 15:09 ` [PATCH v3 0/2] Unify uapi bitsperlong.h Arnd Bergmann
2023-06-22 15:09   ` Arnd Bergmann
2023-06-22 15:09   ` Arnd Bergmann
2023-07-14 18:34   ` Ian Rogers
2023-07-14 18:34     ` Ian Rogers
2023-07-14 18:34     ` Ian Rogers
2023-07-14 19:56     ` Arnd Bergmann
2023-07-14 19:56       ` Arnd Bergmann
2023-07-14 19:56       ` Arnd Bergmann

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=20230727213648.GA354736@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bpf@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=loongarch@lists.linux.dev \
    --cc=loongson-kernel@lists.loongnix.cn \
    --cc=yangtiezhu@loongson.cn \
    /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.