[PATCH] kexec-tools: purgatory: fix build on `binutils-2.42`

Baoquan He bhe at redhat.com
Thu Feb 1 20:16:38 PST 2024


On 02/02/24 at 11:01am, Coiby Xu wrote:
> Hi,
> 
> FYI, before this patch, Michel already sent "[PATCH] Fix building on x86_64
> with binutils 2.41" to address the same issue. Currently I almost know
> nothing about
> assembly but Michel's patch seems to be more complete because two more
> files are touched.

Thanks for telling, I didn't notice that one. I didn't know these
either, leave them to Sergei and Michel to decide what is the
appropriate solution.

> 
> On Wed, Jan 31, 2024 at 07:04:57PM +0800, Baoquan He wrote:
> > On 01/31/24 at 10:05am, Sergei Trofimovich wrote:
> > > `binutils-2.42` introduced stricter checks on what `.arch` can be used
> > > in 64-bit mode and started failing the build as:
> > > 
> > >     $ as-2.42 --64 -o entry32-16-debug.o entry32-16-debug.s
> > >     purgatory/arch/i386/entry32-16-debug.S: Assembler messages:
> > >     purgatory/arch/i386/entry32-16-debug.S:28: Error: 64bit mode not supported on `i386'.
> > > 
> > > The change moves `.code32` before `.arch 386` as suggested in
> > > https://sourceware.org/PR31319
> > 
> > I am not familiar with the gas behaviour, the fix sounds good from
> > discussion in above link.
> > 
> > Reviewed-by: Baoquan He <bhe at redhat.com>
> > 
> > > 
> > > Signed-off-by: Sergei Trofimovich <slyich at gmail.com>
> > > ---
> > >  purgatory/arch/i386/entry32-16-debug.S | 2 +-
> > >  purgatory/arch/i386/entry32-16.S       | 2 +-
> > >  2 files changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/purgatory/arch/i386/entry32-16-debug.S b/purgatory/arch/i386/entry32-16-debug.S
> > > index 5167944..297d6f5 100644
> > > --- a/purgatory/arch/i386/entry32-16-debug.S
> > > +++ b/purgatory/arch/i386/entry32-16-debug.S
> > > @@ -25,10 +25,10 @@
> > >  	.globl entry16_debug_pre32
> > >  	.globl entry16_debug_first32
> > >  	.globl entry16_debug_old_first32
> > > +	.code32
> > >  	.arch i386
> > >  	.balign 16
> > >  entry16_debug:
> > > -	.code32
> > >  	/* Compute where I am running at (assumes esp valid) */
> > >  	call	1f
> > >  1:	popl	%ebx
> > > diff --git a/purgatory/arch/i386/entry32-16.S b/purgatory/arch/i386/entry32-16.S
> > > index c051aab..7a84565 100644
> > > --- a/purgatory/arch/i386/entry32-16.S
> > > +++ b/purgatory/arch/i386/entry32-16.S
> > > @@ -20,10 +20,10 @@
> > >  #undef i386	
> > >  	.text
> > >  	.globl entry16, entry16_regs
> > > +	.code32
> > >  	.arch i386
> > >  	.balign 16
> > >  entry16:
> > > -	.code32
> > >  	/* Compute where I am running at (assumes esp valid) */
> > >  	call	1f
> > >  1:	popl	%ebx
> > > --
> > > 2.43.0
> > > 
> > 
> 
> -- 
> Best regards,
> Coiby
> 




More information about the kexec mailing list