[PATCH 5.4 only v2] powerpc: boot: Remove leading zero in label in udelay()

Christophe Leroy christophe.leroy at csgroup.eu
Thu Sep 4 18:16:33 AEST 2025



Le 03/09/2025 à 23:11, Nathan Chancellor a écrit :
> When building powerpc configurations in linux-5.4.y with binutils 2.43
> or newer, there is an assembler error in arch/powerpc/boot/util.S:
> 
>    arch/powerpc/boot/util.S: Assembler messages:
>    arch/powerpc/boot/util.S:44: Error: junk at end of line, first unrecognized character is `0'
>    arch/powerpc/boot/util.S:49: Error: syntax error; found `b', expected `,'
>    arch/powerpc/boot/util.S:49: Error: junk at end of line: `b'
> 
> binutils 2.43 contains stricter parsing of certain labels [1], namely
> that leading zeros are no longer allowed. The GNU assembler
> documentation already somewhat forbade this construct:
> 
>    To define a local label, write a label of the form 'N:' (where N
>    represents any non-negative integer).
> 
> Eliminate the leading zero in the label to fix the syntax error. This is
> only needed in linux-5.4.y because commit 8b14e1dff067 ("powerpc: Remove
> support for PowerPC 601") removed this code altogether in 5.10.
> 
> Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b [1]
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>

Reviewed-by: Christophe Leroy <christophe.leroy at csgroup.eu>

> ---
> v1 -> v2:
> - Adjust commit message to make it clearer this construct was already
>    incorrect under the existing GNU assembler documentation (Segher)
> 
> v1: https://lore.kernel.org/20250902235234.2046667-1-nathan@kernel.org/
> ---
>   arch/powerpc/boot/util.S | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/boot/util.S b/arch/powerpc/boot/util.S
> index f11f0589a669..5ab2bc864e66 100644
> --- a/arch/powerpc/boot/util.S
> +++ b/arch/powerpc/boot/util.S
> @@ -41,12 +41,12 @@ udelay:
>   	srwi	r4,r4,16
>   	cmpwi	0,r4,1		/* 601 ? */
>   	bne	.Ludelay_not_601
> -00:	li	r0,86	/* Instructions / microsecond? */
> +0:	li	r0,86	/* Instructions / microsecond? */
>   	mtctr	r0
>   10:	addi	r0,r0,0 /* NOP */
>   	bdnz	10b
>   	subic.	r3,r3,1
> -	bne	00b
> +	bne	0b
>   	blr
>   
>   .Ludelay_not_601:
> 
> base-commit: c25f780e491e4734eb27d65aa58e0909fd78ad9f



More information about the Linuxppc-dev mailing list