|
@@ -161,7 +161,7 @@ optional_header:
|
|
|
|
|
|
extra_header_fields:
|
|
|
.quad 0 // ImageBase
|
|
|
- .long 0x20 // SectionAlignment
|
|
|
+ .long 0x1000 // SectionAlignment
|
|
|
.long 0x8 // FileAlignment
|
|
|
.short 0 // MajorOperatingSystemVersion
|
|
|
.short 0 // MinorOperatingSystemVersion
|
|
@@ -228,7 +228,15 @@ section_table:
|
|
|
.short 0 // NumberOfRelocations (0 for executables)
|
|
|
.short 0 // NumberOfLineNumbers (0 for executables)
|
|
|
.long 0xe0500020 // Characteristics (section flags)
|
|
|
- .align 5
|
|
|
+
|
|
|
+ /*
|
|
|
+ * EFI will load stext onwards at the 4k section alignment
|
|
|
+ * described in the PE/COFF header. To ensure that instruction
|
|
|
+ * sequences using an adrp and a :lo12: immediate will function
|
|
|
+ * correctly at this alignment, we must ensure that stext is
|
|
|
+ * placed at a 4k boundary in the Image to begin with.
|
|
|
+ */
|
|
|
+ .align 12
|
|
|
#endif
|
|
|
|
|
|
ENTRY(stext)
|