riscv: efi: Generate Microsoft PE format compliant images
Per Microsoft PE Format documentation [1], PointerToSymbolTable and NumberOfSymbols should be zero for an image in the COFF file header. Currently the COFF file header is hardcoded on RISC-V and these two members are not zero. This updates the hardcoded structure to clear these two members, as well as setting the flag IMAGE_FILE_LOCAL_SYMS_STRIPPED so that we can generate compliant *.efi images. [1] https://docs.microsoft.com/zh-cn/windows/desktop/Debug/pe-format Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									fb8ebf52a4
								
							
						
					
					
						commit
						a33a4efd27
					
				| 
						 | 
					@ -41,13 +41,13 @@ coff_header:
 | 
				
			||||||
	.short	2				/* nr_sections */
 | 
						.short	2				/* nr_sections */
 | 
				
			||||||
	.long	0				/* TimeDateStamp */
 | 
						.long	0				/* TimeDateStamp */
 | 
				
			||||||
	.long	0				/* PointerToSymbolTable */
 | 
						.long	0				/* PointerToSymbolTable */
 | 
				
			||||||
	.long	1				/* NumberOfSymbols */
 | 
						.long	0				/* NumberOfSymbols */
 | 
				
			||||||
	.short	section_table - optional_header	/* SizeOfOptionalHeader */
 | 
						.short	section_table - optional_header	/* SizeOfOptionalHeader */
 | 
				
			||||||
	/*
 | 
						/* Characteristics */
 | 
				
			||||||
	 * Characteristics: IMAGE_FILE_DEBUG_STRIPPED |
 | 
						.short	(IMAGE_FILE_EXECUTABLE_IMAGE | \
 | 
				
			||||||
	 * IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LINE_NUMS_STRIPPED
 | 
							 IMAGE_FILE_LINE_NUMS_STRIPPED | \
 | 
				
			||||||
	 */
 | 
							 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
 | 
				
			||||||
	.short	0x206
 | 
							 IMAGE_FILE_DEBUG_STRIPPED)
 | 
				
			||||||
optional_header:
 | 
					optional_header:
 | 
				
			||||||
	.short	0x20b				/* PE32+ format */
 | 
						.short	0x20b				/* PE32+ format */
 | 
				
			||||||
	.byte	0x02				/* MajorLinkerVersion */
 | 
						.byte	0x02				/* MajorLinkerVersion */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue