Rebase to latest git snapshot
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
		
							parent
							
								
									7ecbb9711d
								
							
						
					
					
						commit
						7331b2ed70
					
				| @ -1,58 +0,0 @@ | ||||
| From 0aa2e4ec963597794dd8f8b36f77f4d0cf4e03c8 Mon Sep 17 00:00:00 2001 | ||||
| From: Michael Brown <mcb30@ipxe.org> | ||||
| Date: Tue, 5 Sep 2023 12:46:39 +0100 | ||||
| Subject: [PATCH] [librm] Use explicit operand size when pushing a label | ||||
|  address | ||||
| 
 | ||||
| We currently use "push $1f" within inline assembly to push the address | ||||
| of the real-mode code fragment, relying on the assembler to treat this | ||||
| as "pushl" for 32-bit code or "pushq" for 64-bit code. | ||||
| 
 | ||||
| As of binutils commit 5cc0077 ("x86: further adjust extend-to-32bit- | ||||
| address conditions"), first included in binutils-2.41, this implicit | ||||
| operand size is no longer calculated as expected and 64-bit builds | ||||
| will fail with | ||||
| 
 | ||||
|   Error: operand size mismatch for `push' | ||||
| 
 | ||||
| Fix by adding an explicit operand size to the "push" instruction. | ||||
| 
 | ||||
| Originally-fixed-by: Justin Cano <jstncno@gmail.com> | ||||
| Signed-off-by: Michael Brown <mcb30@ipxe.org> | ||||
| ---
 | ||||
|  src/arch/x86/include/librm.h | 6 ++++-- | ||||
|  1 file changed, 4 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/src/arch/x86/include/librm.h b/src/arch/x86/include/librm.h
 | ||||
| index 5196d390fa..40f075439a 100644
 | ||||
| --- a/src/arch/x86/include/librm.h
 | ||||
| +++ b/src/arch/x86/include/librm.h
 | ||||
| @@ -250,8 +250,10 @@ extern void remove_user_from_rm_stack ( userptr_t data, size_t size );
 | ||||
|  /* CODE_DEFAULT: restore default .code32/.code64 directive */ | ||||
|  #ifdef __x86_64__ | ||||
|  #define CODE_DEFAULT ".code64" | ||||
| +#define STACK_DEFAULT "q"
 | ||||
|  #else | ||||
|  #define CODE_DEFAULT ".code32" | ||||
| +#define STACK_DEFAULT "l"
 | ||||
|  #endif | ||||
|   | ||||
|  /* LINE_SYMBOL: declare a symbol for the current source code line */ | ||||
| @@ -268,7 +270,7 @@ extern void remove_user_from_rm_stack ( userptr_t data, size_t size );
 | ||||
|   | ||||
|  /* REAL_CODE: declare a fragment of code that executes in real mode */ | ||||
|  #define REAL_CODE( asm_code_str )			\ | ||||
| -	"push $1f\n\t"					\
 | ||||
| +	"push" STACK_DEFAULT " $1f\n\t"			\
 | ||||
|  	"call real_call\n\t"				\ | ||||
|  	TEXT16_CODE ( "\n1:\n\t"			\ | ||||
|  		      asm_code_str			\ | ||||
| @@ -277,7 +279,7 @@ extern void remove_user_from_rm_stack ( userptr_t data, size_t size );
 | ||||
|   | ||||
|  /* PHYS_CODE: declare a fragment of code that executes in flat physical mode */ | ||||
|  #define PHYS_CODE( asm_code_str )			\ | ||||
| -	"push $1f\n\t"					\
 | ||||
| +	"push" STACK_DEFAULT " $1f\n\t"			\
 | ||||
|  	"call phys_call\n\t"				\ | ||||
|  	".section \".text.phys\", \"ax\", @progbits\n\t"\ | ||||
|  	"\n" LINE_SYMBOL "\n\t"				\ | ||||
							
								
								
									
										11
									
								
								ipxe.spec
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ipxe.spec
									
									
									
									
									
								
							| @ -34,12 +34,12 @@ | ||||
| # | ||||
| # And then change these two: | ||||
| 
 | ||||
| %global hash 64113751 | ||||
| %global date 20220210 | ||||
| %global hash de8a0821 | ||||
| %global date 20240119 | ||||
| 
 | ||||
| Name:    ipxe | ||||
| Version: %{date} | ||||
| Release: 8.git%{hash}%{?dist} | ||||
| Release: 1.git%{hash}%{?dist} | ||||
| Summary: A network boot loader | ||||
| 
 | ||||
| License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND (GPL-2.0-only OR MPL-1.1) AND GPL-2.0-or-later AND GPL-2.0-or-later WITH UBDL-exception AND ISC AND MIT | ||||
| @ -51,8 +51,6 @@ Source0: %{name}-%{version}-git%{hash}.tar.xz | ||||
| # Sent upstream: http://lists.ipxe.org/pipermail/ipxe-devel/2015-November/004494.html | ||||
| Patch0001: 0001-build-customize-configuration.patch | ||||
| Patch0002: 0002-Use-spec-compliant-timeouts.patch | ||||
| # Fix build with binutils-2.41, https://github.com/ipxe/ipxe/pull/1011 | ||||
| Patch0003: 0003-librm-Use-explicit-operand-size.patch | ||||
| 
 | ||||
| %ifarch %{buildarches} | ||||
| BuildRequires: perl-interpreter | ||||
| @ -280,6 +278,9 @@ cp -a src/bin-arm64-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/ipxe | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Jan 30 2024 Daniel P. Berrangé <berrange@redhat.com> - 20240119-1.gitde8a0821 | ||||
| - Update to latest git snapshot | ||||
| 
 | ||||
| * Thu Jan 25 2024 Stid Official <stidofficiel@gmail.com> - 20220210-8.git64113751 | ||||
| - Add support of NFS protocol | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1 +1 @@ | ||||
| SHA512 (ipxe-20220210-git64113751.tar.xz) = 3c7d80e2f841013bcb0cb917e13fac86e90e27deadc07d50fac99d8abf69b851a045eed376a095baebc28f5b04f5a9c88fc142979ca65800b9219216cd7fb81b | ||||
| SHA512 (ipxe-20240119-gitde8a0821.tar.xz) = 75f6e926e4f8c45ff661df50158c6eede38cac6e8f90c48157784c64761908b0c272c1a4c1e7e49d6efdb4c93611bf6fb018b99dd8d027bc42848aaa0ad223a2 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user