All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scripts: headers_install.sh: Normalize __ASSEMBLY__ to __ASSEMBLER__
@ 2026-07-20 10:10 Thomas Huth
  2026-07-21 11:14 ` Nicolas Schier
  2026-07-21 21:32 ` Thomas Weißschuh
  0 siblings, 2 replies; 19+ messages in thread
From: Thomas Huth @ 2026-07-20 10:10 UTC (permalink / raw)
  To: linux-kernel, Thomas Weißschuh, Nicolas Schier
  Cc: Arnd Bergmann, Nick Huang, linux-kbuild, Nathan Chancellor

From: Thomas Huth <thuth@redhat.com>

A previous patch to headers_install.sh normalized the usage of
__ASSEMBLER__ to __ASSEMBLY__ in the UAPI headers due to the
assumption that older versions of GCC might not define __ASSEMBLER__
automatically and thus using __ASSEMBLER__ in the UAPI headers might
break compilation with very old versions of GCC. However, as we now
reassured, even GCC 2.95 still defines __ASSEMBLER__ automatically
(and even older versions are hopefully not in use with the current
Linux UAPI headers anymore).
__ASSEMBLER__ is also set automatically by other C compilers like PCC
(see https://github.com/IanHarvey/pcc/blob/cvs2git/2018.09.20/cc/cc/cc.1#L405)
and Tiny-C (see https://repo.or.cz/tinycc.git/commitdiff/a25325e9be13e52a),
so using __ASSEMBLER__ in UAPI header files should really be fine.

Thus let's head forwards and standardize on __ASSEMBLER__ instead
of __ASSEMBLY__ in the UAPI header files now.

Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/all/2030a963-33bc-43fe-9a2b-9c626d7d8360@redhat.com/
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 Based-on: https://lore.kernel.org/all/20260630-uapi-assembly-v2-1-8e7bee2fe816@weissschuh.net/

 To avoid the churn, feel free to squash this patch with
 Thomas Weißschuh's original patch as long as it has not been
 merged to Linus' tree yet.

 scripts/headers_install.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
index 83e4475968781..2f1d1767ca267 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -36,7 +36,7 @@ sed -E -e '
 	s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g
 	s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g
 	s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @
-	s/__ASSEMBLER__/__ASSEMBLY__/g
+	s/__ASSEMBLY__/__ASSEMBLER__/g
 ' $INFILE > $TMPFILE || exit 1
 
 scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread
* [PATCH] scripts: headers_install.sh: Normalize __ASSEMBLY__ to __ASSEMBLER__
@ 2026-03-09 15:58 Thomas Weißschuh
  2026-03-13 23:56 ` Nathan Chancellor
  2026-07-16 10:24 ` Thomas Huth
  0 siblings, 2 replies; 19+ messages in thread
From: Thomas Weißschuh @ 2026-03-09 15:58 UTC (permalink / raw)
  To: Arnd Bergmann, Nathan Chancellor, Nicolas Schier
  Cc: Maciej W. Rozycki, Nick Huang, linux-kernel, linux-kbuild,
	Thomas Weißschuh

There is an ongoing effort to replace the usage of __ASSEMBLER__ with
__ASSEMBLY__ throughout the kernel tree, see for example
commit 287d163322b7 ("arm64: Replace __ASSEMBLY__ with __ASSEMBLER__ in
non-uapi headers"). The latter is automatically provided by all compilers
and preprocessors supported by the kernel, so the explicit definitions
of __ASSEMBLER__ can be removed.

However the UAPI headers might be used with older (< GCC 3.0) or
non-GCC-compatible compilers, which do not define __ASSEMBLY__
automatically. So this migration may brake users.
Also during the migration phase, the UAPI headers will use a mix of
*both* __ASSEMBLY__ and __ASSEMBLER__ at the same time, which is ugly.

For now make sure that the exported UAPI headers consistently use
__ASSEMBLER__ as before.

Link: https://lore.kernel.org/lkml/164baf81-2824-4943-bbc1-4ae8a160c0cc@t-8ch.de/
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
This should go either through kbuild or asm-generic, I think.
---
 scripts/headers_install.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
index 9c15e748761c..2f1d1767ca26 100755
--- a/scripts/headers_install.sh
+++ b/scripts/headers_install.sh
@@ -36,6 +36,7 @@ sed -E -e '
 	s/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g
 	s/(^|[[:space:](])(inline|asm|volatile)([[:space:](]|$)/\1__\2__\3/g
 	s@#(ifndef|define|endif[[:space:]]*/[*])[[:space:]]*_UAPI@#\1 @
+	s/__ASSEMBLY__/__ASSEMBLER__/g
 ' $INFILE > $TMPFILE || exit 1
 
 scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $TMPFILE > $OUTFILE

---
base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
change-id: 20260302-uapi-assembly-0bb7213b41f1

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>


^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2026-07-22  7:34 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-20 10:10 [PATCH] scripts: headers_install.sh: Normalize __ASSEMBLY__ to __ASSEMBLER__ Thomas Huth
2026-07-21 11:14 ` Nicolas Schier
2026-07-21 20:54   ` Nathan Chancellor
2026-07-21 21:32 ` Thomas Weißschuh
2026-07-22  7:34   ` Thomas Huth
  -- strict thread matches above, loose matches on Subject: below --
2026-03-09 15:58 Thomas Weißschuh
2026-03-13 23:56 ` Nathan Chancellor
2026-03-24 17:05   ` Thomas Weißschuh
2026-03-24 18:35     ` Nathan Chancellor
2026-03-24 19:58       ` Thomas Weißschuh
2026-06-13 10:13         ` Nicolas Schier
2026-06-13 16:57           ` Nathan Chancellor
2026-07-16 10:24 ` Thomas Huth
2026-07-16 16:40   ` Thomas Weißschuh
2026-07-16 18:16     ` Maciej W. Rozycki
2026-07-17 15:25       ` Thomas Weißschuh
2026-07-20 15:31         ` Maciej W. Rozycki
2026-07-16 18:52     ` Thomas Huth
2026-07-17 15:28       ` Thomas Weißschuh

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.