mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Arnd Bergmann" <arnd@arndb.de>
To: "Will Deacon" <will@kernel.org>, "Thomas Huth" <thuth@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	Linux-Arch <linux-arch@vger.kernel.org>,
	"Catalin Marinas" <catalin.marinas@arm.com>
Subject: Re: [PATCH 08/41] arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers
Date: Fri, 14 Mar 2025 13:05:15 +0100	[thread overview]
Message-ID: <df30d093-c173-495a-8ed9-874857df7dee@app.fastmail.com> (raw)
In-Reply-To: <20250314115554.GA8986@willie-the-truck>

On Fri, Mar 14, 2025, at 12:55, Will Deacon wrote:
> On Fri, Mar 14, 2025 at 08:09:39AM +0100, Thomas Huth wrote:
>> __ASSEMBLY__ is only defined by the Makefile of the kernel, so
>> this is not really useful for uapi headers (unless the userspace
>> Makefile defines it, too). Let's switch to __ASSEMBLER__ which
>> gets set automatically by the compiler when compiling assembly
>> code.
>> 
>> Cc: Catalin Marinas <catalin.marinas@arm.com>
>> Cc: Will Deacon <will@kernel.org>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  arch/arm64/include/uapi/asm/kvm.h        | 2 +-
>>  arch/arm64/include/uapi/asm/ptrace.h     | 4 ++--
>>  arch/arm64/include/uapi/asm/sigcontext.h | 4 ++--
>>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> Is there a risk of breaking userspace with this? I wonder if it would
> be more conservative to do something like:
>
> #if !defined(__ASSEMBLY__) && !defined(__ASSEMBLER__)
>
> so that if somebody is doing '#define __ASSEMBLY__' then they get the
> same behaviour as today.
>
> Or maybe we don't care?

I think the main risk we would have is user applications relying
on the __ASSEMBLER__ checks in new kernel headers and not defining
__ASSEMBLY__. This would result in the application not building
against old kernel headers that only check against __ASSEMBLY__.

Checking for both in the kernel headers does not solve this
problem, and I think we can still decide that we don't care:
in the worst case, an application using the headers from assembly
will have to get fixed later when it needs to be built against
old headers.

I checked that old gcc versions pass __ASSEMBLY__ at least as
far back as gcc-2.95, and it should be completely safe to
assume that no older gcc versions would be used on kernel
headers, and they probably would choke on c99 features like
'long long'. I would also assume that any other compiler that
may be used to include kernel headers has to have enough
gcc compatibility to define all the common macros.

      Arnd

  reply	other threads:[~2025-03-14 12:05 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-14  7:09 [PATCH 00/41] treewide: Replace __ASSEMBLY__ with __ASSEMBLER__ in header files Thomas Huth
2025-03-14  7:09 ` [PATCH 01/41] uapi: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 02/41] include: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 03/41] alpha: Replace __ASSEMBLY__ with __ASSEMBLER__ in the alpha headers Thomas Huth
2025-03-14  7:09 ` [PATCH 04/41] arc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 05/41] arc: Replace __ASSEMBLY__ with __ASSEMBLER__ in the non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 06/41] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 07/41] arm: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 08/41] arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14 11:55   ` Will Deacon
2025-03-14 12:05     ` Arnd Bergmann [this message]
2025-03-14 13:42       ` Will Deacon
2025-03-14 18:01         ` Thomas Huth
2025-10-10 13:05         ` Thomas Huth
2025-03-14  7:09 ` [PATCH 09/41] arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 10/41] csky: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi header Thomas Huth
2025-03-14  7:09 ` [PATCH 11/41] csky: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 12/41] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 13/41] hexagon: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-04-08 15:16   ` Brian Cain
2025-10-06  8:08     ` Thomas Huth
2025-03-14  7:09 ` [PATCH 14/41] loongarch: Replace __ASSEMBLY__ with __ASSEMBLER__ in the loongarch headers Thomas Huth
2025-03-14  7:09 ` [PATCH 15/41] m68k: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 16/41] m68k: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 17/41] microblaze: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-06-10 13:19   ` Michal Simek
2025-03-14  7:09 ` [PATCH 18/41] microblaze: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-06-10  7:26   ` Michal Simek
2025-06-10 13:19   ` Michal Simek
2025-03-14  7:09 ` [PATCH 19/41] mips: Replace __ASSEMBLY__ with __ASSEMBLER__ in the mips headers Thomas Huth
2025-03-20 12:56   ` Philippe Mathieu-Daudé
2025-03-14  7:09 ` [PATCH 20/41] nios2: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 21/41] nios2: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 22/41] openrisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-06-07  5:52   ` Stafford Horne
2025-03-14  7:09 ` [PATCH 23/41] openrisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-06-07  5:53   ` Stafford Horne
2025-03-14  7:09 ` [PATCH 24/41] parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-05-04 18:53   ` Helge Deller
2025-03-14  7:09 ` [PATCH 25/41] parisc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-05-04 18:53   ` Helge Deller
2025-03-14  7:09 ` [PATCH 26/41] powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 27/41] powerpc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:09 ` [PATCH 28/41] riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 29/41] riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 30/41] s390/uapi: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 31/41] s390x: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 32/41] sh: Replace __ASSEMBLY__ with __ASSEMBLER__ in the SuperH headers Thomas Huth
2025-06-07 13:11   ` John Paul Adrian Glaubitz
2025-03-14  7:10 ` [PATCH 33/41] sparc: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-09-26 15:03   ` Andreas Larsson
2025-03-14  7:10 ` [PATCH 34/41] sparc: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-08-03 13:33   ` John Paul Adrian Glaubitz
2025-08-04  6:01     ` Thomas Huth
2025-08-04  8:00       ` Arnd Bergmann
2025-08-04 18:04         ` David Laight
2025-08-05  9:50     ` Thomas Huth
2025-09-26 15:04   ` Andreas Larsson
2025-03-14  7:10 ` [PATCH 35/41] um: Replace __ASSEMBLY__ with __ASSEMBLER__ in the usermode headers Thomas Huth
2025-03-18  9:59   ` Johannes Berg
2025-03-14  7:10 ` [PATCH 36/41] x86: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 37/41] x86: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  9:04   ` [tip: x86/merge] x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers tip-bot2 for Thomas Huth
2025-03-19 11:03   ` [tip: x86/core] " tip-bot2 for Thomas Huth
2025-03-14  7:10 ` [PATCH 38/41] xtensa: Replace __ASSEMBLY__ with __ASSEMBLER__ in uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 39/41] xtensa: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers Thomas Huth
2025-03-14  7:10 ` [PATCH 40/41] scripts/dtc: Update fdt.h to the latest version Thomas Huth
2025-03-14 20:47   ` Rob Herring
2025-03-17  5:53     ` Thomas Huth
2025-03-14  7:10 ` [PATCH 41/41] treewide: Stop defining __ASSEMBLY__ for assembler files Thomas Huth

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=df30d093-c173-495a-8ed9-874857df7dee@app.fastmail.com \
    --to=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thuth@redhat.com \
    --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 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®