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

Coiby Xu coxu at redhat.com
Thu Feb 1 19:01:38 PST 2024


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.

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