Re: [PATCH] scripts: headers_install.sh: Normalize __ASSEMBLY__ to __ASSEMBLER__

Thomas Weißschuh <[email protected]> Tue, 21 Jul 2026 23:32:16 +0200
Newsgroups org.kernel.vger.linux-kbuild,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 2026-07-20 12:10:25+0200, Thomas Huth wrote:
> From: Thomas Huth <[email protected]>
> 
> 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.

I am not that happy about this explanation. The note about old GCC was
dropped in the committed version of the patch.
It should be enough to just explain why __ASSEMBLER__ is better.

> Thus let's head forwards and standardize on __ASSEMBLER__ instead
> of __ASSEMBLY__ in the UAPI header files now.
> 
> Suggested-by: Thomas Weißschuh <[email protected]>
> Link: https://lore.kernel.org/all/[email protected]/
> Signed-off-by: Thomas Huth <[email protected]>
> ---
>  Based-on: https://lore.kernel.org/all/[email protected]/
> 
>  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
>