mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	efi_loader: helloworld.c: Explicitly use .rodata for loaded_image_guid
Commit bbf75dd9345d0b ("efi_loader: output load options in helloworld")
introduced a const variable in efi_main() called loaded_image_guid which
got populated from a constant struct.
While you would usually expect a compiler to realize that this variable
should really just be a global pointer to .rodata, gcc disagrees and instead
puts it on the stack. Unfortunately in some implementations of gcc it does
so my calling memcpy() which we do not implement in our hello world
environment.
So let's explicitly move it to a global variable which in turn puts it in
.rodata reliably and gets rid of the memcpy().
Fixes: bbf75dd9345d0b ("efi_loader: output load options in helloworld")
Reported-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
			
			
This commit is contained in:
		
							parent
							
								
									15616a0aa5
								
							
						
					
					
						commit
						ae67dca5e6
					
				@ -13,6 +13,8 @@
 | 
			
		||||
#include <common.h>
 | 
			
		||||
#include <efi_api.h>
 | 
			
		||||
 | 
			
		||||
static const efi_guid_t loaded_image_guid = LOADED_IMAGE_GUID;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Entry point of the EFI application.
 | 
			
		||||
 *
 | 
			
		||||
@ -26,7 +28,6 @@ efi_status_t EFIAPI efi_main(efi_handle_t handle,
 | 
			
		||||
	struct efi_simple_text_output_protocol *con_out = systable->con_out;
 | 
			
		||||
	struct efi_boot_services *boottime = systable->boottime;
 | 
			
		||||
	struct efi_loaded_image *loaded_image;
 | 
			
		||||
	const efi_guid_t loaded_image_guid = LOADED_IMAGE_GUID;
 | 
			
		||||
	efi_status_t ret;
 | 
			
		||||
 | 
			
		||||
	con_out->output_string(con_out, L"Hello, world!\n");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user